包的组织方式
服用优先使用模块, 就是将函数, 类等放在单独的文件中. 使用的时候使用 import
导入:
- 文件中的定义方法没有特殊要求, 原来怎么写, 在模块中依旧怎么写.
- 导入方式有多种:
import 模块名 [as 别名]
, 全部导入, 使用时模块名是命名空间.from 模块名 import 成员 [as 别名]
, 导入特定成员. 存在命名冲突的风险, 所以考虑使用别名.from 模块 import *
, 导入所有成员, 且无命名空间. 不推荐该用法.from . import xxx
包内的相对导入, 可以使用当前目录.
, 上级目录..
.
当模块很多时, 可以将其统一放到一个文件夹中, 并在文件夹中提供 __init__.py
文件, 来配置模块.
my_package/
├── __init__.py
├── module_a.py
└── subpackage/
└── module_b.py
__init__.py
用于同于管理模块, 确定哪些可以导出:
# my_package/__init__.py
from .module1 import add
from .module2 import Calculator
__all__ = ["add", "Calculator"] # 控制 from my_package import * 的行为