模块
1、模块概念:
在模块中定义的全局变量、函数、类都是提供给外界直接使用的工具。
模块相当于工具包,要想使用这个工具包中的工具就必须导入这个模块。
2、模块的几种导入方式
(1)import导入
import 模块1,模块2
import 模块3
导入后使用 模块名. 的方式使用模块提供的工具。
(2)import导入时指定别名
import 模块1 as 别名1
import 模块2 as 别名2
导入后使用 别名. 的方式使用模块提供的工具
(3)from import局部导入
from 模块 import 工具名
导入后直接通过 工具名 使用模块提供的工具,不需要通过 模块. 的方式。
(4)from import导入同名工具
如果想导入的两个模块中存在同名函数,那么后导入模块的函数会覆盖掉先导入的函数。一旦发现模块函数有同名冲突可以使用 as 关键字给冲突的工具起别名。
(5)from import 导入所有工具
from 模块 import *
这种导入方式不需要通过 模块. 的方式访问模块的工具,可以直接通过 工具名 访问。但不推荐这种导入方式,因为函数重名没有提示,出现问题无法排查。
3、模块的搜索顺序
在导入模块时,python解释器会优先搜索 当前目录 的指定模块名文件,如果没有,再搜索 系统目录 。
4、内置属性__file__
python中每一个模块都有一个内置属性__file__可以查看模块的完整路径。
5、导入文件时会自动执行文件中所有没有缩进的代码
6、内置属性__name__
__name__属性可以实现测试模块只在测试情况下运行,而在被导入时不会被执行。
如果是被其他文件导入的__name__就是输出模块名
如果是当前执行的程序__name__就是输出"main"
# 导入模块
# 定义全局变量
# 定义类
# 定义函数
def main():
pass
# 根据__name__判断是否执行下方代码
if __name__ == "__main__":
main()