模块

1 模块

一系列功能的集合体
定义
别人:系统内置的
         第三方模块
自己:自己写的模块或自己写的py文件
来源
1 用别人写好的模块可以极大提高开发效率
2 当自己写代码较多的时候,如果将全部代码放在一个文件下,不利于我们的查找,也不利于我们的修改,这时候我们应该分成多个py文件。一个py文件就是一个模块,使用模块导入可以快速调用该文件
使用模块的好处
1 使用python编写的py文件
2 已被编译为共享库或DLL的C或C++扩展
3 把一系列模块组织到一起的文件夹,该文件夹称之为包
包:一系列文件的结合体
4 使用C编写并连接到python解释器的内置模块
表现形式

2 模块导入的两种方式

 import 模块名
from 文件夹名或文件名 import 文件名或文件里的内容
模块的两种导入方式
py文件名不应与模块名(包括内置,第三方模块)冲突
注意

3 模块导入图解

注意:模块只有在首次导入才会运行被导入文件,如果后面继续导入,将不会加载,只会引用第一次导入的结果。
import导入方式
首次导入过程说明:首先先加载自执行文件,为自执行文件开辟名称空间,分配内存地址
                          其次加载被导入文件,为其创建名称空间,并执行被导入文件代码,将其产生的名字放到名称空间里。
                          第三在执行文件中产生一个指向被导入文件名称空间的名字。
from 模块名 import 导入方式
首次导入过程说明:首先先加载自执行文件,为自执行文件开辟名称空间,分配内存地址
                          其次加载被导入文件,为其创建名称空间,并执行被导入文件代码,将其产生的名字放到名称空间里。
                          第三直接拿到被导入文件里的名字
模块导入

 

4 模块两种导入方式的特点

import 导入方式:、
1 指名道姓的访问模块的名字,永远不会与执行文件中的名字冲突
2 你如果想访问模块中名字,必须用模块名。名字的方式
注意:一个 import后面跟多个模块名必须满足下面条件:
       1 几个模块有相同的部分
       2 几个模块同属于一个模块
       否则,必须分开写(一般推荐使用该方式)
       通常导入模块的句式会写在文件的开头
       如果模块名比较复杂,一般选择给模块名起别名
       示例:import asss as a
from import 导入方式:
访问模块中的名字不需要加模块名前缀
在访问模块中的名字可能与当前执行文件的名字冲突
补充:from imporrt有两种方式
        1 from 模块名 import 模块中的内容
        2 from 模块名 import *
两种导入方式的特点

5 模块的循环导入问题和解决方案

模块循环导入问题产生的原因:在你导入另一个模块时,另一个模块也在导入你。
解决方案1:将其写在文件内容后面
解决方法2:将其写在函数内部
    
View Code

6 自执行文件和被导入文件

自执行文件:在文本编辑器中不能使用相对导入必须使用绝对导入,自执行文件调用__name__方法时,返回的是__main__
被导入文件:可以相对导入也可以绝对导入,调用__name__方法是,返回的是模块名
自执行文件和被导入文件

7 模块的查找顺序

先从内存中找,再从内置中找,最后从环境变量里找
模块的查找顺序

8 相对导入和绝对导入

绝对导入: 绝对导入必须依据执行文件所在的文件夹路径为准
         绝对导入无论在执行文件中还是被导入文件都适用
注意:pycharm默认将项目工程 添加到环境变量中
相对导入(.语法):.代表当前文件路径
                           ..代表上一级文件路径
                           ...代表上上级文件路径
相对导入和绝对导入
posted @ 2019-07-16 21:33  ليو  阅读(124)  评论(0编辑  收藏  举报