模块
Python模块(Module)是一个Python文件,以.py后缀结尾,包含了Python对象定义和Python语句。
模块能定义函数、类和变量,模块内也能包含可执行的代码。
导入模块
导入模块的方式
# 基础方式1. import 模块名2. from 模块名 import 功能名3. from 模块名 import *# 别名方式4. import 模块名 as 别名5. from 模块名 import 功能名 as 别名
import
# 导入模块import 模块名# 调用模块模块名.功能名()
import mathprint(math.sqrt(9)) # 3
from...import...
from 模块名 import 功能1,功能2...
from math import sqrtprint(sqrt(9)) # 3
from...import *
from 模块名 import **表示导入所有功能
from math import *print(sqrt(9)) # 3
as定义别名
模块定义别名(模块起别名)
import 模块名 as 别名
功能定义别名(功能起别名)
from 模块名 import 功能 as 别名
制作模块
模块的名字就是文件的名字。
- 自定义模块名必须要符合标识符命名规则;
- 自定义的文件名不能与已有的模块名重复,否则模块功能无法使用;
使用
**from 模块名 import 功能**时,如果功能名字重复,默认只调用最后定义或导入的功能。制作模块的步骤
定义模块(类似于分文件、分模块设计功能)
测试模块
在功能函数代码中,使用
if的方式添加测试代码。功能函数代码文件内,访问
**__name__**,返回的是**__main__**;- 在功能函数文件外,访问
**__name__**,返回的是模块文件名。 ```python添加测试代码示例——功能函数内访问
def testA(a, b): print(a + b)
测试代码
if name == “main“: testA(2, 2)
<a name="IEaHx"></a>### 调用模块```python# 导入模块import 导入模块# 调用模块模块.功能名()
模块路径查找顺序
__all__列表
如果一个模块文件中,有all变量列表时,当使用**from 模块名 import ***导入时,默认只能导入这个列表中的元素名称下的功能。
# 模块代码----myModule__all__ = ["testA"]def testA():print("testA")def testB():print("testB")# 模块嗲用from myModule import *testA() # testAtestB() # 报错
包的使用方法
包
把相互有联系的模块,放到同一个文件夹下,并在这个文件夹创建一个**__init__.py**文件,这个文件夹称之为包。
制作包
制作包的步骤
在解析器(Pycharm)==> [New] ==> [Python Package] ==> 输入包名 ==> [OK] ==> 新建功能模块。
导入包
导入方法一
# 导入包import 包名.模块名# 调用包包名.模块名.目标
导入方法二
该方法必须在**__init__.py**文件中添加**__all__ = []**,控制允许导入的模块列表。
# 导入包from 包名 import *# 调用包模块名.目标
