Skip to content

模块与包

模块

模块是包含 Python 代码的文件,文件名以 .py 结尾。模块可以包含变量和函数,目的是提高代码的可维护性和可重用性。

把模块想象成一个工具。每个工具(模块)都具有特定的功能,可以帮助我们完成不同的任务。

导入标准库模块

Python 有许多内置的标准库模块,可以直接导入使用。例如 math 模块。

  • 导入模块中所有方法的示例:
python
import math

print(math.sqrt(16))  # 输出 4.0
  • 导入模块中指定方法的示例:
python
from math import sqrt

print(sqrt(16))  # 输出 4.0

创建自定义模块

创建一个模块实际上就是创建一个包含相关代码的 .py 文件。

示例:

创建一个简单的模块 hammer.py

python
# hammer.py
def use():
    return "Using the hammer!"

tool_name = "Hammer"

导入自定义模块

我们可以导入自己编写的模块,例如刚刚创建的 hammer.py。

python
import hammer

print(hammer.use())  # 输出 "Using the hammer!"
print(hammer.tool_name)  # 输出 "Hammer"

包是一个包含多个模块的目录,目录中有一个特殊的 init.py 文件。通过包,可以组织和管理更复杂的项目。

把包想象成一个工具箱,里面有很多工具(模块)。我们可以在不同的工具箱中找到不同的工具。

创建包的示例:

包结构

toolbox/
    __init__.py
    hammer.py
    greetings.py
  • hammer.py:
python
# hammer.py
def use():
    return "Using the hammer!"
  • greetings.py:
python

# greetings.py
def say_hello(name):
    return f"Hello, {name}!"

__init__.py 的作用:

__init__.py 文件是告诉 Python 这个目录是一个包。它可以是一个空文件,也可以包含包的初始化代码。通过这个文件,我们可以在导入包时执行一些初始化操作,或者定义包的公共接口。

示例 init.py 文件:

python

# __init__.py
from .hammer import use as use_hammer
from .greetings import say_hello

使用包中的模块:

python

from toolbox import use_hammer, say_hello

print(use_hammer())  # 输出 "Using the hammer!"
print(say_hello("Bob"))  # 输出 "Hello, Bob!"

Released under the MIT License