天天看点

初识包 | Python从入门到精通:高阶篇之三十八

模块化简介 | 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

初识包 | Python从入门到精通:高阶篇之三十八

在a.py中输入:

c = 30           

在b.py中输入:

d = 40           

将__init__.py中的a,b删掉,此时在新建的模块中输出。

print(hello.a)           
初识包 | Python从入门到精通:高阶篇之三十八

我们之所以建立包,是为了将相关的模块放在一起,比如进行计算器的程序(加减乘除等操作)可以放在一个包中,方便管理,并且在引用的时候也可以根据需要去引用。

但是对于新建的模块而言,如何引用hello的其他模块呢?我们可以直接引用。

from hello import a , b

# print(a)
print(a.c)
print(b.d)           
初识包 | Python从入门到精通:高阶篇之三十八
初识包 | Python从入门到精通:高阶篇之三十八
初识包 | Python从入门到精通:高阶篇之三十八

我们在新建a.py和b.py的时候会发现hello中多了一个__pycache__文件。

__pycache__ 是模块的缓存文件。

py代码在执行前,需要被解析器先转换为机器码,然后再执行。所以我们在使用模块(包)时,也需要将模块的代码先转换为机器码然后再交由计算机执行。而为了提高程序运行的性能,python会在编译过一次以后,将代码保存到一个缓存文件中,这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码即可。

配套视频课程,点击这里查看

获取更多资源请订阅

Python学习站