模块化简介 | Python从入门到精通:高阶篇之三十七
包 Package
包也是一个模块。
当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包。
普通的模块就是一个py文件,而包是一个文件夹。
创建一个hello的文件夹,此时它并不是一个包。
我们可以通过新建一个模块来验证。
import hello
print(hello)
执行结果:
包中必须要一个 __init__.py 这个文件,这个文件中可以包含有包中的主要内容。
在__init__.py这个文件中定义
a = 10
b = 20
def test():
print('test')
在新建的模块中验证:
print(hello.a)
print(hello.b)
hello.test()
执行结果:
在hello中新建a.py和b.py
在a.py中输入:
c = 30
在b.py中输入:
d = 40
将__init__.py中的a,b删掉,此时在新建的模块中输出。
print(hello.a)
执行结果:
我们之所以建立包,是为了将相关的模块放在一起,比如进行计算器的程序(加减乘除等操作)可以放在一个包中,方便管理,并且在引用的时候也可以根据需要去引用。
但是对于新建的模块而言,如何引用hello的其他模块呢?我们可以直接引用。
from hello import a , b
# print(a)
print(a.c)
print(b.d)
执行结果:
我们在新建a.py和b.py的时候会发现hello中多了一个__pycache__文件。
__pycache__ 是模块的缓存文件。
py代码在执行前,需要被解析器先转换为机器码,然后再执行。所以我们在使用模块(包)时,也需要将模块的代码先转换为机器码然后再交由计算机执行。而为了提高程序运行的性能,python会在编译过一次以后,将代码保存到一个缓存文件中,这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码即可。
配套视频课程,点击这里查看
获取更多资源请订阅Python学习站