我看过PEP-8的这部分https://www.python.org/dev/peps/pep-0008/#package-and-module-names

我不清楚是否引用模块/类/包的文件名。

如果每个都有一个示例,则文件名是否应全部使用小写并带有下划线?还是别的?

评论

tl; dr:两个类FooBar和FooBiz都可能会进入文件somepkg / foobar.py(因此:从somepkg.foobar导入FooBar),但是TimerError类可能会进入except / timer_error.py(因此要从except.timer_error导入TimerError)由于删除CamelCase有时会使单词更难以阅读,因此,蛇名可以用作文件名。

#1 楼

引用https://www.python.org/dev/peps/pep-0008/#package-and-module-names:


模块应该使用短小写全名。如果模块名称可以提高可读性,则可以在模块名称中使用下划线。尽管不建议使用下划线,但Python软件包也应使用短小写的全名。


对于类:


类名应通常使用CapWords约定。


并且函数和(本地)变量名称应为:提高可读性


有关模块,类和包之间的区别,请参见以下答案:



Python模块就是一个Python源文件,可以显示类,函数和全局变量。
Python包只是Python模块的目录。




因此PEP 8告诉您:


模块(文件名)应具有短而全小写的名称,并且它们可以包含下划线;
包(目录)应具有具有短的全小写名称,最好不带下划线;
类应使用CapWords约定。


PEP 8告知名称应简短;此答案很好地概述了在创建变量名时要考虑的内容,这些变量名也适用于其他名称(用于类,包等):



变量名称不是完整的描述符;
在注释中添加详细信息;
名称太具体可能意味着代码太具体;
保留较短的范围以便快速查找;
花时间考虑可读性。 br />




最后,在Google Python样式指南中对命名约定进行了很好的概述。

评论


我会尴尬地要求确认我的理解,模块包含类-因此您将在模块中使用类,并且在一个模块中可以有多个类?

–黑暗
16年2月1日在17:13

是的,模块中可以有0、1或更多类。

–金
16年2月1日在17:14

我很高兴在项目失控之前及时发现了这一点,因为我所有的软件包都像我的班级一样遵循CapsWords约定。

–Bas Jansen
18年8月16日14:42



@pypmannetjies这实际上是另一个问题,但是我想说您应该首选长而易懂的名称,而不是短而又不易理解的名称。

–金
19年4月30日在12:50

对于软件包名称,它表示“不鼓励使用下划线”,而不是禁止使用。在python哲学中,您应该遵循“虽然实用胜过纯度”的规则。当然,最好的办法是找到一种遵循规则并切实可行的方法(也许制作多个软件包来拆分名称,使用一些> long> name而不是somelongname吗?)

– Juh_
19年5月6日在9:06

#2 楼

这是不同类型的Python名称约定的链接。

Python的样式指南基于Guido的命名约定建议。