python 模块和包
一、模块
1、实质
模块的实质.py文件
2、导入
1)import 模块
a.使用规则
模块.变量名
与本地定义的同名变量不冲突
b.别名
import 模块 as 别名
别名.变量名
作用:简化代码、提高兼容性
c.一次导入多个模块
import 模块1, 模块2, 模块3
不推荐这样写
2)from 模块 import 变量名
a.使用
变量名
与本地定义的变量名冲突
b.别名
from 模块 import 变量名 as 别名
作用:简化代码(重命名变量名)
c.一次导入多个变量
from 模块 import 变量1, 变量2
不推荐使用
d.from 模块 import *
不推荐使用,不安全
增加安全性:
在模块里添加__all__ = [字符串类型的变量名],
只有列表里有的变量名,才能被成功导入
3、模块文件
if __name__ == '__main__':
若在.py文件加上上面的代码,下面执行逻辑,若果执行该.py文件,执行下面的代码,若作为模块,则不执行下面的代码
直接执行模块的.py文件,__name__ == '__main__'
在其它.py文件,引入这个模块时,这个模块__name__ = '模块的名字'
4、其它
sys.modules记录了所有被导入的模块
sys.path 记录了导入模块的时候寻找的所有路径
二、包
1、导入
与模块显示
2、格式
创建包每个包都有__.init__.py文件
3、绝对路径
优点:不管包的位置在内部还是外部,导了就能用
缺点:不能移动
4、相对路径
.当前路径
..上一级路径
优点:包可以移动
缺点:在包里的模块不能使用其他自定义模块