模块的Python命名约定

时间:2009-04-02 22:31:36

标签: python naming-conventions

我有一个模块,其目的是定义一个名为“nib”的类。 (以及一些相关的类。)我应该如何调用模块本身? “笔尖”? “nibmodule”?还有什么吗?

6 个答案:

答案 0 :(得分:102)

只是笔尖。使用大写N命名类Nib。有关命名约定和其他样式建议的更多信息,请参阅Python样式指南PEP 8

答案 1 :(得分:40)

我称之为nib.py.我还会把Nib命名为。

在我正在开发的一个更大的python项目中,我们有很多模块基本上定义了一个重要的类。类以大写字母开头。这些模块的命名方式类似于小写。这会导致以下导入:

from nib import Nib
from foo import Foo
from spam.eggs import Eggs, FriedEggs

这有点像模仿Java方式。每个文件一个类。但是,通过增加灵活性,如果有意义的话,你可以总是将另一个类添加到单个文件中。

答案 2 :(得分:27)

我知道我的解决方案从pythonic的角度来看并不是很受欢迎,但我更喜欢使用一个模块的Java方法 - >一个类,模块命名为类。 我确实理解python风格背后的原因,但我不太喜欢有一个包含很多类的非常大的文件。尽管折叠,但我发现很难浏览。

另一个原因是版本控制:拥有一个大文件意味着你的提交倾向于专注于该文件。这可能会导致需要解决更多的冲突。您还会丢失提交修改特定文件的其他日志信息(因此涉及特定的类)。相反,您会看到对模块文件的修改,只有提交注释才能理解已完成的修改。

总结一下,如果您更喜欢python哲学,请查看其他帖子的建议。如果您更喜欢类似java的哲学,请创建一个包含Nib类的Nib.py。

答案 3 :(得分:21)

nib很好。如有疑问,请参阅Python样式指南。

来自PEP 8

  

包裹和模块名称   模块应具有简短的全小写名称。可以使用下划线   在模块名称中,如果它提高了可读性。 Python包应该   虽然使用下划线,但也有简短的全小写名称   气馁。

     

由于模块名称映射到文件名,而某些文件系统是   不区分大小写和截断长名称,重要的是模块   名称选择相当短 - 这在Unix上不会成为问题,   但是当代码被传输到较旧的Mac或时,它可能是一个问题   Windows版本,或DOS。

     

当用C或C ++编写的扩展模块附带Python时   提供更高级别的模块(例如,更面向对象)   接口,C / C ++模块有一个前导下划线(例如_socket)。

答案 4 :(得分:0)

来自PEP-8: Package and Module Names

  

模块应使用简短的全小写名称。下划线可以是   如果可以提高可读性,则在模块名称中使用。

     

Python程序包也应使用简短的全小写名称,尽管使用了   不鼓励使用下划线。

     

当用C或C ++编写的扩展模块带有附件时   提供更高级别(例如,更多面向对象)的Python模块   界面上,C / C ++模块的前划线(例如_socket)。

答案 5 :(得分:-3)

python中的

foo 模块相当于Java中的 Foo 类文件

python中的

foobar 模块相当于Java中的 FooBar 类文件