每个 Python 文件都是一个模块。
你可以从其他文件中导入一个模块,这是任何中等复杂程度的程序的基础,因为它促进了合理的组织和代码重用。
在典型的 Python 程序中,有一个文件作为入口点。其他文件是模块,暴露了我们可以从其他文件中调用的函数。
文件dog.py 包含这个代码。
def bark():
print('WOF!')
我们可以使用import 从另一个文件导入这个函数,一旦导入,我们就可以使用点符号来引用这个函数,dog.bark() 。
或者,我们可以使用from .. import 语法,直接调用该函数。
from dog import bark
bark()
第一种策略允许我们加载文件中定义的所有内容。
第二种策略让我们挑选我们需要的东西。
那些模块是你的程序所特有的,而导入取决于文件系统中的文件位置。
假设你把dog.py 放在一个lib 子文件夹里。
在那个文件夹中,你需要创建一个名为__init__.py 的空文件。这就告诉 Python 这个文件夹包含模块。
现在你可以选择,你可以从lib 中导入dog 。
from lib import dog
dog.bark()
或者你可以引用dog 模块的特定函数,从lib.dog 中导入。
from lib.dog import bark
bark()