Python 包命名规范
在Python中有没有类似于Java那种的包命名规则,比如Java的 com.company.actualpackage
这种形式?我发现大多数时候,Python的包名都很简单,有可能会重复,比如 "web"。
如果没有这样的规则,那是为什么呢?你觉得在Python中使用Java的命名规则怎么样?
7 个回答
19
Java的命名规则也有一些缺点。并不是每个开源包都有一个稳定的网站支持。如果维护者的网站发生了变化,他们该怎么办呢?另外,按照这种命名方式,包的名字会变得很长,记起来也很困难。最后,包的名字应该反映它的用途,而不是它的拥有者。
48
Python有两个很重要的原则,能帮助我们理解这个话题:
明确比隐含要好。
还有:
命名空间是个非常棒的主意——我们应该多用它!
关于模块的命名和导入,有一些约定可以在Python风格指南(PEP 8)中找到。
没有像Java那样强制在模块名前加前缀的原因,主要是因为这样会导致代码中出现很多重复的内容,而这些内容其实是没必要的。
Java的一个问题就是它总是让你重复自己,代码中有很多冗余的部分,而这些在Python中是没必要的。(比如说获取器和设置器就是一个很好的例子。)
在Python中,命名空间的问题不大,因为你可以在导入模块时给它起个别名。例如:
import com.company.actualpackage as shortername
这样一来,你不仅可以在程序中创建或操作命名空间,还可以创建自己的快捷别名,省去很多打字的麻烦。