4.1 python基础 - 导入、模块与包

36 阅读2分钟

模块是什么?

在Python中,模块是一个包含函数、类和变量等Python代码的文件,通常以.py为文件扩展名。模块允许我们将代码组织成逻辑单元,使得代码更加易于管理和重用。

创建模块

要创建一个模块,你只需将相关的函数和类写入一个.py文件中。例如,如果你有一个计算数学运算的模块,你可以创建一个名为math_operations.py的文件,并在其中定义加法、减法等函数。

# math_operations.py

def add(x, y):
    """返回两个数的和"""
    return x + y

def subtract(x, y):
    """返回两个数的差"""
    return x - y

包的概念

当一个项目变得庞大,单个模块可能无法承载所有功能。这时,我们可以创建一个包,它是一个包含多个模块的文件夹。在Python中,一个包是一个包含__init__.py文件的目录,这个文件可以为空,但它的存在告诉Python这个目录应该被视为一个包。

命名模块和包

为了避免与Python内置模块的名称冲突,我们应该在命名模块和包时避免使用内置模块的名称。例如,不要将模块命名为sysos,因为这些是Python的标准库模块。

模块和包的导入

要使用其他模块或包中的函数,我们需要导入它们。导入操作应该放在运行文件的同级目录中。例如,如果你想在main.py中使用math_operations.py模块中的函数,你可以这样做:

# main.py

import math_operations

result = math_operations.add(5, 3)
print("结果是:", result)

Python提供了两种主要的导入方式:importfrom ... import

  • 使用import语句,你可以导入整个模块,然后通过模块名来访问其中的函数和类。
  • 使用from ... import语句,你可以直接导入模块中的特定函数或类,而不需要通过模块名来访问。

导入全部内容

如果你想要导入模块中的所有内容,可以使用通配符*

from math_operations import *
print(add(5, 3))  # 使用不加模块名前缀的方式调用函数

导入特定内容

如果你只想导入模块中的特定函数或类,可以指定它们:

from math_operations import add
print(add(5, 3))

导入并重命名

有时,为了避免名称冲突或为了使代码更清晰,你可能想要在导入时重命名模块或函数:

import math_operations as mo
print(mo.add(5, 3))

from math_operations import add as sum
print(sum(5, 3))

模块和包是Python中代码组织的重要工具。通过合理使用importfrom ... import语句,我们可以有效地重用代码,使项目结构更加清晰。记住,良好的模块和包命名习惯对于维护大型项目至关重要。