包:文件夹中默认含有一个__init__.py文件
包是几个模块的集合
从包中导入模块 有import 和from import两种
import 要把从包开始所有文件都打出来,包。包。模块名 也可以as 包。包。模块名 as xx 直接xx。函数名()就行了
from 就是分开了 from 包。包 import 模块名 模块名。函数名() 就行了
from 包。包。模块名 import 函数名 函数名() 就行了 这个操作比较多
凡是导入时带点的,点的左边都必须是个包
from inport后导入模块必须是一个不能带点的
直接导入包
import 包的名字
导入了一个包
不意味着这个包下面的所有内容都可以被使用的
导入一个包相当于执行了这个包下面的init。py文件
绝对导入。。。导入包不能 包。包。文件或包。文件 只能去包1里写 form 包1 import 包2 以此类推 这个脚本和这个脚本同级的只能绝对导入
优点比较容易就找到层级关机 缺点是 如果当前导入包的文件和被导入的包的位置关系发生变化那么所有的导入init的文件都要做相应的调整
相对导入
from。import xxx 。代表永远在当前路径 含有相对导入的文件不能被直接执行 相对导入必须放包里执行
含有相对导入的py文件不能被直接执行 必须放到包中被导入的调用才能正常的使用
如果只是从包导入模块的话,我们不需要任何多余的操作 直接导入就行