完成本章学习后,你将能够:
模块是包含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
下一章:第二十一章:虚拟环境