命名类和命名他们的文件在python(约定?)之间的关联

在Python(和其他一些语言)中,我已经了解到,除了第一个字母(应该是大写字母)之外,一个类的名字应该用小写字母来写。 例:

class FooBar: ... 

一个类应该放在一个文件中,与该类相同。 在这个例子中,它将是一个文件foobar.py 。 如果我想在某处导入foo类,我必须这样做:

 from foobar import FooBar 

这个惯例让我有些困惑。 我的直觉告诉我,如果文件名表示一个类,那么也应该用大写的第一个字母来写,就像FooBar.py一样。 这在文件名中看起来不太好看。 也许有人可以告诉我这是什么标准的公约

我希望我可以理解我的问题。 🙂

你提出的是标准的约定。

封装和模块名称

模块应该有简短的,全小写的名字。 如果提高可读性,则可以在模块名称中使用下划线。 尽pipe不build议使用下划线,Python包也应该有简短的全小写名称。

由于模块名称映射到文件名,某些文件系统不区分大小写并截断长名称,所以重要的是select模块名称的时间相当短 – 在Unix上这不是问题,但它可能是代码被传输到较旧的Mac或Windows版本或DOS时出现问题。

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

类名称

几乎没有例外,类名称使用CapWords约定。 内部使用的类别还有一个主要的下划线。

( Python风格指南 )


见例如

 from configparser import ConfigParser 

(顺便说一下,它是Python 2.x中的ConfigParser,但在3.x中改为小写)。

PEP 8说:

模块应该有简短的,全小写的名字。 如果提高可读性,则可以在模块名称中使用下划线。 尽pipe不build议使用下划线,Python包也应该有简短的全小写名称。

我还会注意到,你不一定每个文件只有一个类。 相反,你应该在相同的文件中包含相关的类。 (当然在某些情况下,只有一个文件可以工作,但情况并非总是如此)