一:包
1)包就是管理一系列模块的文件夹
2)包中有一个__init__.py文件来专门管理每一个模块(在__init__文件中不建议import导入模块,不建议as起别名)
二:导入完成的工作
1)编译执行模块文件形成对应的pyc文件
2)形成模块的全局名称空间
3)通过import关键字产生名字指向对应的地址
ps:导入的顺序为:内存》》内置模块》》自定义模块
三:绝对导入
本质:import后直接导入,或者from 包名.模块 import 功能
必须有绝对的路径进行导入
import new.nw new.nw.a() #此处导入了new文件夹中得到nw模块,nw中有一个功能a()
循环导入
a模块中引用b模块
b模块中引用a模块
通常先创建变量,再去引用,否则可能会出现引用的函数中需要用的变量没有产生。
四:相对导入
本质:利用.语法,获取当前文件所在文件夹路径(..为回到上层文件夹,以此类推,不能退出底层文件夹)
from ...pkmm.gn import a #当前文件所在的文件夹的上上层文件夹中有一个文件夹pkmm中有一个gn模块,导入其中的a功能 #相对导入的py文件无法自执行
导包时应确定包在环境变量中,导入的文件夹名就是包名