Python模块命名规则:模块的 Python命名约定

关于Python模块命名规则的问题,在python module name中经常遇到, 我有一个模块,其目的是定义一个名为“nib”的类。(以及一些相关的类也是如此。) 我应该如何调用模块本身?“nib”?“nibmodule”?还有其他吗?

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

121

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

42

我会称之为 nib.py。我也会命名类 Nib。

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

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

这有点像模拟 Java 的方式。每个文件一个类。但随着增加的灵活性,您可以 allways 添加另一个类到单个文件,如果它是有意义的。

30

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

另一个原因是版本控制:有一个大文件意味着你的提交倾向于集中在那个文件上。这可能会导致更多的冲突需要解决。你还失去了你的提交修改特定文件 (因此涉及特定类) 的额外日志信息。相反,你会看到对模块文件的修改,只有提交注释来理解已经做了什么修改。

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

25

nib 很好。如果有疑问,请参阅 Python 风格指南。

FromPEP 8:

包和模块名称模块应该有短的全小写名称。如果提高可读性,可以在模块名称中使用下划线。Python 包也应该有短的全小写名称,尽管不鼓励使用下划线。

由于模块名称映射到文件名,并且某些文件系统不区分大小写并截断长名称,因此选择相当短的模块名称非常重要-这在 Unix 上不会有问题,但是当将代码传输到较旧的 Mac 或 Windows 版本或 DOS 时,可能会出现问题。

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

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(478)
Souffl e:十六进制中的“E/e”与十六进制浮点文字中的指数形式的“E/e”有何区别
上一篇
Python密码判断:在 Python中解密凯撒密码密码
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(6条)