python:chapter21

第二十章:模块与包

完成本章学习后,你将能够:

  • 创建和使用模块
  • 组织代码为包
  • 理解导入机制
  • 管理项目结构

模块是包含Python定义和语句的文件,文件名即模块名加.py。

# mymodule.py
def greet(name):
    return f"Hello, {name}!"
 
PI = 3.14159
 
class Calculator:
    def add(self, a, b):
        return a + b
 
# 使用模块
import mymodule
print(mymodule.greet("Alice"))
print(mymodule.PI)
 
calc = mymodule.Calculator()
# 导入整个模块
import math
print(math.sqrt(16))
 
# 导入特定内容
from math import sqrt, pi
print(sqrt(16))
print(pi)
 
# 使用别名
import numpy as np
from math import sqrt as square_root
 
# 导入所有(不推荐)
from math import *
 
# 相对导入(在包内)
from . import module_a
from .. import parent_module
my_package/
    __init__.py
    module_a.py
    module_b.py
    subpackage/
        __init__.py
        module_c.py
# __init__.py 文件内容
from .module_a import function_a
from .module_b import ClassB
 
__version__ = "1.0.0"
__all__ = ['function_a', 'ClassB']
import my_package
my_package.function_a()
 
from my_package import ClassB
obj = ClassB()
 
from my_package.subpackage import module_c
import sys
print(sys.path)  # 模块搜索路径
 
# 添加自定义路径
sys.path.append('/path/to/modules')
 
# 使用PYTHONPATH环境变量
# export PYTHONPATH=/path/to/modules:$PYTHONPATH
# mymodule.py
def main():
    print("Running as main program")
 
if __name__ == "__main__":
    # 直接运行时执行
    main()
else:
    # 被导入时执行
    print("Imported as module")

1. 创建包含多个模块的包 2. 实现可执行的模块 3. 组织真实项目结构 4. 编写setup.py

下一章:第二十一章:虚拟环境

该主题尚不存在

您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。

  • python/chapter21.txt
  • 最后更改: 2026/04/09 14:32
  • 张叶安