显示页面讨论过去修订反向链接回到顶部 本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。 ====== 第二十章:模块与包 ====== ===== 本章目标 ===== 完成本章学习后,你将能够: * 创建和使用模块 * 组织代码为包 * 理解导入机制 * 管理项目结构 ===== 模块基础 ===== ==== 什么是模块 ==== 模块是包含Python定义和语句的文件,文件名即模块名加.py。 <code python> # 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() </code> ==== 导入方式 ==== <code python> # 导入整个模块 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 </code> ===== 包组织 ===== ==== 包结构 ==== <code> my_package/ __init__.py module_a.py module_b.py subpackage/ __init__.py module_c.py </code> <code python> # __init__.py 文件内容 from .module_a import function_a from .module_b import ClassB __version__ = "1.0.0" __all__ = ['function_a', 'ClassB'] </code> ==== 使用包 ==== <code python> import my_package my_package.function_a() from my_package import ClassB obj = ClassB() from my_package.subpackage import module_c </code> ===== 模块搜索路径 ===== <code python> import sys print(sys.path) # 模块搜索路径 # 添加自定义路径 sys.path.append('/path/to/modules') # 使用PYTHONPATH环境变量 # export PYTHONPATH=/path/to/modules:$PYTHONPATH </code> ===== __name__和主程序 ===== <code python> # mymodule.py def main(): print("Running as main program") if __name__ == "__main__": # 直接运行时执行 main() else: # 被导入时执行 print("Imported as module") </code> ===== 本章练习 ===== 1. 创建包含多个模块的包 2. 实现可执行的模块 3. 组织真实项目结构 4. 编写setup.py 下一章:[[python_course:chapter21|第二十一章:虚拟环境]] 登录 Detach Close 该主题尚不存在 您访问的页面并不存在。如果允许,您可以使用创建该页面按钮来创建它。 python/chapter21.txt 最后更改: 2026/04/09 14:32由 张叶安 登录