跳至内容

Python包

Python中,包(Package)是一个包含着各种函数的容器。例如,math包自带开平方根sqrt()函数。

包的出现是为了解决代码规模不断扩大,代码杂乱无序的问题。通过使用包,可以将代码按照功能拆分到不同的文件中,这样即保证了代码的相关性,也方便了代码的组织和管理。

包的模型结构

假设我们要开发一款游戏,包的组织结构参考

包的模型结构

注意

包目录必须要包含一个名为__init__.py的文件。因为这样解释器才会把这个目录作为一个包。通常情况下,这个文件内放置一些包初始化代码。

从包内导入模块

Python中,可以使用点号.从包内导入模块。

python
import Game.Level.start
import Game.Level.start

如果该模块包含一个名为set_value()的函数,我们必须使用全量名引用它。

python
Game.Level.start.set_value(1)
Game.Level.start.set_value(1)

如果不想每次调用都引用长长的一串名称,可以部分导入,然后再调用。

python
from Game.Lvel.start import set_value
set_value(1)
set_value(2)
from Game.Lvel.start import set_value
set_value(1)
set_value(2)

尽管这样看上去很简单,但是不推荐这么做。使用全量名可以避免不同模块的重名属性冲突的问题。

提示

当导入包时,Python会从模块搜索路径(sys.path定义)去查找目录列表。