假设我需要为我的公司编写几个小型到中型的库。
在Pythonic的方式中,使用Java方法并使用通用的高级包(咳嗽,模块)前缀所有库是否有意义,以实现以下结构:
mycompany.mylibrary1.moduleA
mycompany.mylibrary1.moduleB.moduleD
mycompany.mylibrary2.moduleC
或者直接选择以下选项是否更好:
mylibrary1.moduleA
mylibrary1.moduleB.moduleD
mylibrary2.moduleC
我注意到大多数情况下都采用第二种方法,但我希望确认(或不确认)这是正确的选择。
在PEP 008中,我没有找到相关内容,只有以下内容:
Python库的命名规则比较混乱,所以我们永远无法完全保持一致[...] 之后我们只能得到模块和类的命名指示,以及不鼓励使用相对导入。
绝对导入是最好的方法,这使得组织库的方式非常重要(我不是在讨论避免相对导入的好与坏)。
我喜欢Java的方法,即为所有库命名空间,但我认为这不是Pythonic的...建议采取什么样的方式?
附注: 虽然在Stack Overflow上通常将“最佳实践”问题视为主观的,但是在Python中,PEP的存在使它们在我的看法中变得非常客观!尽管答案可能是...没有最佳的组织库的实践方法...
mylibrary1
更简单。如果它们仅供内部使用,mycompany.mylibary1
意味着你以后不会遇到其他人的mylibrary1
带来的麻烦。 - Thomas K