day16

                                     模块

          一系列功能的集合体 

常见的四种模块:
1.使用python编写的.py文件
2.把一系列模块组织到一起的文件夹(注:文件夹下有一个__init__.py文件,该文件夹称之为包)
3.使用C编写并链接到python解释器的内置模块
4.已被编译为共享库或DLL的C或C++扩展

             模块的搜索路径

搜索顺序:内存 => 内置模块 => sys.path

1.导入模块会优先在内存中查找
2.内存中没有被加载的话,再去查找内置模块
3.还没有查找到,就根据sys.path中的路径顺序逐一查找

             模块导入的流程

 

导入模块的指令:
1.相对于 函数名() 调用函数体,函数调用会进入函数体,从上至下逐句解释执行函数体代码
2.导入模块,会进入模块文件,从上至下逐句解释执行模块文件代码
3.如果在模块中又遇到导入其他模块,会接着进入导入的模块,从上至下逐句解释执行文件中代码,依次类推

 

               循环导入 

如:m1.py 中导入了m2,m2.py 中又导入了m1

 

解决循环导入的问题:延后导入
1、将循环导入对应包要使用的变量提前定义,再导入响应的包
2、将导包的路径放倒函数体中,保证存放导包逻辑的函数调用在要使用的变量定义之后

 

问题:from导包极容易出现循环导入问题
解决:取消from导入方式,采用import导入方式

 

posted @ 2019-05-05 21:06  呼吸决定丶  阅读(84)  评论(0)    收藏  举报