模块
- 只要以 .py为后缀的文件,都可以成为模块。
- 模块中包含:
- 变量
- 函数
- Class 面向对象
- 可执行的代码
- 使用模块的好处:管理方便,易维护;降低复杂度。
1. 使用模块
- 导入模块:
import 模块1, 模块2...
- 导入之后如何使用:
模块名.变量
模块名.函数名(参数)
模块名.类
- 导入模块中相关数据:
from 模块 import 变量,函数,类
导入后可以直接使用 - 两种导入方式:
import random
from random import randint
:可以直接使用randint函数。
- 如果被导入的包在当前路径文件夹下:
- import .绝对路径
- from .相对路径 import 要用的方法
2. 使用自定义模块
- 问题:在导入自定义模块的时候,自定义模块的代码都会运行一遍。
解决方案:在自定义模块中,新增空值代码:
if __name__ == "__main__":
····测试代码执行
- import导入MyMath模块时候,被导入的模块Mymath中的代码会执行一遍;此时执行 __ name __ 的执行结果是导入的模块名MyMath,而不是 __ main __ !所以在MyMath包中的首行假如
if __name__ == 'main'
- 【关于__ main __ 和 __ name __的博客】 https://blog.csdn.net/yjk13703623757/article/details/77918633/
- all:手动添加全局变量__all__之后,from 模块 import * 将不再是默认导入所有的功能,而是导入__all__列表中所包含的功能(Python3环境下,不建议使用)
__all__ = ['add', 'sub', 'mul', 'div']
3. 包package
- 包的概念:可以理解为文件夹,前提是,包中必须含有一个__init__.py模块。
- 包的作用:
- 将模块归类
- 仿制模块名冲突
- 包中的模块,名字会变化,新名字:包名.模块名
- 包中的模块如何使用:
import 包名.模块名
from 包名.模块名 import *
- 模块 init.py:位于包中,初始化模块,首次导入包中的模块时,init.py会被执行一次。
- init.py 中可以存放和普通模块一样的代码,变量,类,函数…
一般会写一些辅助代码,让你更方便的导入包或者文件。 - 在__init__.py模块中导入包1:import 模块1
之后再其他文件中在导入模块1,就可以简化导入