包:文件夹中默认含有一个__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文件不能被直接执行 必须放到包中被导入的调用才能正常的使用

如果只是从包导入模块的话,我们不需要任何多余的操作   直接导入就行