Python导入规范:跨多文件共享常量的正确导入方式
关于Python跨模块导入常量的规范选择
问题背景
项目结构如下:
/src/definitions.py:包含需要导入的常量A、B、C、D、E/src/class.py:通过from .definitions import A, B, C导入部分常量,同时定义了MyClassmain.py:需要使用MyClass以及常量A、B、C、D、E
现有两种导入方式,哪种符合规范?
方式1
from src.class import MyClass from src.definitions import A, B, C, D, E
方式2
from src.class import MyClass, A, B, C from src.definitions import D, E
规范结论
方式1是符合Python导入规范的正确选择,原因如下:
- 来源清晰直观:A、B、C的实际定义在
definitions.py中,直接从源模块导入,能让阅读代码的人立刻明确这些常量的出处,不会误以为它们是class.py的产物。 - 降低耦合风险:如果后续
class.py不再需要A、B、C,移除了对应的导入语句,方式2的main.py会直接报错。直接从源模块导入能避免这种依赖传递带来的潜在问题。 - 契合PEP8最佳实践:Python的PEP8规范建议,导入应直接指向定义目标的原始模块,而非通过中间模块间接导入,这样的代码更健壮、更易于维护。
内容的提问来源于stack exchange,提问作者Schelli
相关产品推荐
相关产品推荐

