模块 Module
定义
包含一系列数据、函数、类的文件,通常以.py结尾。
作用
让一些相关的数据,函数,类有逻辑的组织在一起,使逻辑结构更加清晰。
有利于多人合作开发。
导入
import
1.语法:
import 模块名
import 模块名 as 别名
2.作用:将某模块整体导入到当前模块中
3.使用:模块名.成员
from import
1.语法:
from 模块名 import 成员名[ as 别名1]
作用:将模块内的一个或多个成员导入到当前模块的作用域中。
from import *
1.语法:from 模块名 import *
2.作用:将某模块的所有成员导入到当前模块。
3.模块中以下划线(_)开头的属性,不会被导入,通常称这些成员为隐藏成员。(隐藏成员必须显式地导入(指名道姓)以表明程序员知道导入的是什么,如前两种导入方法。隐藏成员是针对非显式的导入,是防止在程序员不知情的情况下导入引起某些危险。
模块中的变量
__all__变量:定义可导出成员,仅对from xx import *语句有效。
__doc__变量:文档字符串。
__file__变量:模块对应的文件路径名。
__name__变量:模块自身名字,可以判断是否为主模块。
当此模块作为主模块(第一个运行的模块)运行时,__name__绑定’
main
’,不是主模块,而是被其它模块导入时,存储模块名。
加载过程
在模块导入时,模块的所有语句会执行。
如果一个模块已经导入,则再次导入时不会重新执行模块内的语句。
分类
1.内置模块(builtins),在解析器的内部可以直接使用。
2.标准库模块,安装Python时已安装且可直接使用。
3.第三方模块(通常为开源),需要自己安装。
4.用户自己编写的模块(可以作为其他人的第三方模块)
搜索顺序
搜索内建模块(builtins)
sys.path 提供的路径,通常第一个是程序运行时的路径。
包package
定义
将模块以文件夹的形式进行分组管理。
作用
让一些相关的模块组织在一起,使逻辑结构更加清晰。
导入
from 包名 import 模块名 [as 模块新名]
from 包名.子包名 import 模块名 [as 模块新名]
from 包名.子包名.模块名 import 成员名 [as 属性新名]
导入包内的所有子包和模块
from 包名 import *
from 包名.模块名 import *
搜索顺序
sys.path 提供的路径
>>
>
import
sys
>>
>
sys
.
path
[
''
,
'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip'
,
'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37\\DLLs'
,
'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37\\lib'
,
'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37'
,
'C:\\Users\\Tedu\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages'
]
>>
>
__init__.py
文件
是包内必须存在的文件
会在包加载时被自动调用
init文件中的
__all__
变量
记录
from 包 import *
语句时允许导入的模块,e.g:
__all__
=
[
"module01"
]
有时需要Remark dir as Root才可以。