我正在为大约 30 名开发人员组成的团队编写一套 Python 编码指南。作为我的文档的基础,到目前为止我已经研究了谷歌Python风格指南 http://google-styleguide.googlecode.com和PEP 8 风格指南 http://www.python.org/dev/peps/pep-0008/,并合并了两者的信息。
Google 风格指南比 PEP 8 限制更多的地方是导入。 Google 指南要求开发人员仅导入包和模块,然后通过更合格的名称引用其中的项目。例如:
from pkg import module
...
my_class = module.MyClass()
理由是“每个标识符的来源都以一致的方式指示”。对于我们的项目,我们打算组织两层或三层深度的包,因此要了解标识符的完整来源,读者可能需要检查导入语句。我想提倡这种导入风格作为“首选风格”:
from pkg.module import MyClass
...
my_class = MyClass()
恕我直言,当名称更简洁时,Python 结构(例如列表理解)的可读性会得到提高。
我不清楚 python 解释器在幕后可能做什么。例如,MyClass 现在是该模块以及该模块的所有导入器的全局命名空间的一部分吗? (这会很糟糕,可能会导致一些奇怪的错误;如果这是真的,我会提倡 Google 风格)。
我的Python开发经验仅限于6个月左右(而且我们的项目没有太多专家可以咨询),所以我想从社区获取更多信息。以下是我已经研究过的一些项目:
effbot - 关于进口的讨论 http://effbot.org/zone/import-confusion.htm
堆栈溢出 - 导入与从导入 https://stackoverflow.com/questions/9439480/from-import-vs-import
python 文档 - 模块 http://docs.python.org/2/tutorial/modules.html
python 文档 - 导入 http://docs.python.org/2/reference/simple_stmts.html#import
谢谢你的回复!