一、模块化编程
(1)导入模块
#导入整个sys模块
import sys
#获取程序全路径名称
print(sys.argv[0])
#给sys模块起别名
import sys as s
print(s.argv[0])
#导入两个模块
import sys as s,os as o
print(s.argv[0])
#输出平台上的路径分隔符
print(o.sep)
#从sys模块中导入argv成员变量
from sys import argv as v,winver as w
#导入sys模块所有成员
from sys import *
(2)定义模块module1.py 文件
"""
这是第一个模块说明,该模块包含以下内容:
my_book 变量
say_hi(user)函数
user 用户类
"""
print('这是module1')
my_book = '疯狂python讲义'
def say_hi(user):
print('%s 您好,欢迎学习python' % user)
class user:
def __init__(self, name):
self.name = name
def walk(self):
print('%s 正在走路' % self.name)
def __repr__(self):
return self.name
#只有在运行当前py文件时__name__ 才会变为__main__,增加if判断防止其他的py文件
#在import当前模块的时候执行测试代码
if __name__ == '__main__':
test_my_book()
test_say_hi()
test_user()
module1.py 的模块名就是 moudule1,使用模块可以实现很好的代码复用,导入导出模块
二、加载模块
三、使用包
四、查看模块内容
五、常见模块
(1)sys模块
#常见的模块
import sys
l = [e for e in dir(sys) if not e.startswith('_')]
print(l)
动态修改模块加载路径
(2)os模块
(3)random模块
(4)time模块
(5)json支持模块
(6)正则表达式re模块
(7)容器相关类
set集合有如下两个特征
set不记录元素的添加顺序,元素不允许重复
set集合是可变容器,程序可以改变容器中的元素。与set对应的还有f'rozenset集合,是set的不可变版本,它的元素是不可变的
deque双端队列
(8)python的堆操作: heapq模块
(9)collections下的容器支持
# 定义三个map
a, b, c = {'ko': 90}, {'go': 93}, {'sw': 89}
m = ChainMap(a,b,c)
print(m)
print(m['ko'])
(10)函数相关模块
itertools模块
functools 模块