导入外部模块方式
- 从外部导入模块,有导入模块和导入成员两种方式,具体包括:
import path.module:导入模块from path.module import member1, member2,…:导入指定模块下的具体成员from path.module import *:导入指定模块下的全部成员
path指代模块所在的路径module是模块,即 xxx.py 文件- 成员
member可以是变量、函数、类以及包 - 快捷导入方式为:写出需要的模块名或成员名,此时系统报语法错误,光标放在报错处,使用 Alt+Enter 快捷键,系统会自动识别和导入
什么是包
- 含有
__init__.py的文件夹称之为包 - 在
__init__.py中,可以为包中的其它模块做一些全局初始化的工作 __init__.py可以视为一个【与包名同名的模块】,引入__init__.py中的成员方式为:from 包名 import member
- 包文件夹中的 xxx.py 可以视为包模块的成员 member,它的导入方式可以是:
import 包名.xxx:此时包被视为一个普通文件夹路径from 包名 import xxx:此时包被视为一个模块,xxx.py 被视为一个成员
路径详解
- path 为相对路径:相对于【系统库标准库根目录】或【第三方库根目录】或【当前工程根目录】
- 系统标准库根目录所在的位置为:解释器安装目录/Lib/,例如:C:\Python36\Lib
- 第三方库根目录所在位置为:解释器安装目录/Lib/site-packages/,例如:C:\Python36\Lib\site-packages
- 如果是导入工程内的模块,则相对路径的根目录为当前工程目录
导入后的调用方式
import path.module,调用方式:path.module.memberfrom path.module import member1, member2,…,调用方式:member1from path.module import *,调用方式:member
避免自动触发外部模块的业务逻辑
- 当我们导入一个自定义模块的时候,如果这个模块在成员定义以外,还包含一定的业务逻辑代码,则这些代码必须被写在【入口保护】中
- 如果模块的业务逻辑不写在入口保护中,则外界在将其导入时(无论是导入模块还是导入成员),这些业务逻辑都会被自动触发
- 入口保护的样式如下
if __name__ == '__main__':
# 一些业务逻辑 pass
- 之所以这个结构被称为入口保护,是因为我们通常会在其中测试一下自己写的函数和类是否正确

