1.模块化编程
1. 导入模块的语法
# 导入整个模块
import 模块名1 [as 别名1], 模块名2 [as 别名2], ...
# 导入模块中指定成员
from 模块名 import 成员名1 [as 别名1],成员名2 [as 别名2],...
第一种导入整个模块的的所有成员(包括变量,函数,类等)
第二种只导入模块内的指定成员(除非使用from 模块名 import *,但通常不推荐使用)
使用第一种的成员时,必须添加模块名或模块别名前缀
使用第二种的成员时,无须使用任何前缀
![](https://img.haomeiwen.com/i15100194/fe11ad3b2e710ac2.png)
2. 定义模块
模块就是Python程序!任何Python程序都可以作为模块导入。
对于任何程序,只要导入了模块就可以使用该模块内的所有成员。
3. 为模块编写说明文档
在第一行代码之前。用“”“”“”包含起来的说明文字就是说明文档了。
可以通过模块的doc属性来访问文档
文件路径
![](https://img.haomeiwen.com/i15100194/49e326b307a1bf8a.png)
test1.py
![](https://img.haomeiwen.com/i15100194/0b60673d208f1fc4.png)
test2.py
![](https://img.haomeiwen.com/i15100194/777182f74c7ec640.png)
test2.py 运行结果
![](https://img.haomeiwen.com/i15100194/1c0b47fba86265d5.png)
4. 为模块编写测试代码
当模块编写完成后,可以还需要为模块编写一些测试代码,用于测试模块中的每一个程序单元是否都能正常运行。
2. 加载模块
1. 为了让Python能找到我们编写(第三方提供)的模块,有以下两种方式:
- 使用环境变量
- 将模块放在默认的模块加载路径下
2. all变量
有的模块中虽然包含很多成员,但不希望每个成员都暴露出来供外界使用,可以借助all变量,将变量的值设置成一个列表,只有该列表中的程序单元才会被暴露出来。
all_module.py
'测试__all__变量的模块'
def hello():
print("Hello, Python")
def world():
print("Pyhton World is funny")
def test():
print('--test--')
# 定义__all__变量,指定默认只导入hello和world两个程序单元
__all__ = ['hello', 'world']
all_module_test.py
# 导入all_module模块内所有成员
from all_module import *
hello()
world()
test() # 会提示找不到test()函数
3. 使用包
1. 什么是包
- 从物理上看,包就是一个文件夹,在该文件夹下包含了一个init.py文件,该文件夹可用于包含多个模块源文件。
- 从逻辑上看,包的本质依然是模块。
2. 定义包
- 创建文件夹,包名就是文件夹的名字。
- 在该文件夹内添加一个init.py文件即可。
3. 导入包内成员
与导入模块类似
4. 查看模块内容
1. 模块包含什么
- 使用dir()函数
- 使用模块本身提供的all变量
dir函数
__all__变量
2. 使用doc属性查看文档
help(string.capwords)
# 或者
print(string.capwords.__doc__)
3. 使用file属性查看模块的源文件路径
print(string.__file__)
网友评论