导入外部模块方式
- 从外部导入模块,有导入模块和导入成员两种方式,具体包括:
① 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.member
- ② from path.module import member1,member2,…,调用方式:member1
- ③ from path.module import *,调用方式:member
避免自动触发外部模块的业务逻辑
- 当我们导入一个自定义模块的时候,如果这个模块在成员定义以外,还包含一定的业务逻辑代码,则这些代码必须被写在【回归测试】中;
- 如果模块的业务逻辑不写在回归测试中,则外界在将其导入时(无论是导入模块还是导入成员),这些业务逻辑都会被自动触发;
- 回归测试的样式如下
if __name__ == '__main__':
# 一些业务逻辑
pass
- 之所以这个结构被称为回归测试,是因为我们通常会在其中测试一下自己写的函数和类是否正确;
版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/pangzhaowen/article/details/80299631