1. 模块的制作
模块就是 python ⽂件。制作模块其实就是定义⼀个 python ⽂件。
使⽤模块的好处:可以直接使⽤系统或者是别⼈直接写好的功能。
注意点: 模块的名字(代码⽂件的名字),要遵循标识符的规 则(由字⺟/数字和下划线组成,不能以数字开头), 只有遵循标识符规则的⽂件名字才能被导⼊使⽤。
2. 模块的导入
# 方法一:import 模块名
# 使用:模块名.功能名
import random # 导⼊随机数模块
a = random.randint()
# 方法二:from 模块名 import 功能名
# 使用:功能名
from random import randint
a = randint()
# 方法三:from 模块名 import *
# 使用:功能名
from random import *
a = randint()
# 关键字 as 可以起别名
# import 模块名 as 别名
# from 模块名 import 功能名 as 别名
3. __all__
模块中可以定义⼀个特殊的变量,__all__,控制和影响from 模块 import *
的导⼊⾏为
- 如果没有定义__all__变量,默认可以将模块中所有的内容导⼊。
- 如果定义了__all__变量,只能导⼊变量中定义的内容 。
__all__变量,⼀般写作列表
注意点:__all__只能影响from xx import *
,不能影响另外两种导⼊。
4. __name__
在每⼀个python⽂件中,都有⼀个__name__变量,是 python解释器⾃动维护的。
导⼊⼀个模块,相当于是执⾏这个模块中的内容。
直接运⾏代码⽂件,__name__的值是__name__
;导⼊运⾏,__name__ 的中是模块的名字。
固定⽤法:在每⼀个python代码⽂件中,添加以下内容 :
if __name__ == '__main__':
函数的调⽤
类的调⽤(创建对象)
具体的业务
5. 包
将功能相近或者相似的模块,放在⼀个⽬录中,并在⽬录中定 义⼀个__init__.py ⽂件,这样的⼀个⽬录,就是包。
# 方法一:import 包名.模块名
# 方法二:from 包名.模块名 import 功能名
# from 包名.模块名 import *
# 方法三:from 包名 import * # 导入的是 __init__.py 文件中的内容