一、认识模块
模块可以认为是一个py文件,模块实际上是我们的py文件运行后的名称空间
导入模块:
1.判断sys.modules中是否已经导入过该模块
2.开辟一个内存
3.在这个内存中执行该py文件
4.给这个内存起个名字,一般用的是py文件的名字。返回给导入方
如果你的py文件是启动文件,“__name__”的结果是__main__,否则结果则是文件名
程序的入口一般是:
if __name__ == "__main__":
pass
二、import
import 模块名
模块名.属性/方法/类
每个模块都有自己的独立的名称空间,每个都有一个global,互相并不影响
模块.属性 = 值 #不要这么干
三、from xxx import xxx
from 模块 import 函数/变量
当作自己的变量或者函数来使用
from xxx import * 导入所有
导入的内容可以起别名 as
四、包
包就是一个文件夹,py2中包内必须有一个__init__.py文件,在python3中可以省略,但是最好都保留。
__init__.py当我们导入一个包的时候,默认执行这个包内的__init__.py
一条语句 > 语句块 > 代码块(函数、类) > py文件(模块) > 包
五、相对导入和绝对导入
相对导入:相对于当前模块所在的包,使用的时候必须在包外面启动
绝对导入:根据包的根目录去导入内容
总得来说就是全都依赖于 sys.path
注意:尽量在包的外面启动程序。