python 中命名类和命名其文件之间的关联(约定?)

发布于 2024-11-06 09:00:09 字数 370 浏览 4 评论 0原文

在Python(和其他一些语言)中,我了解到,类的名称应该用小写字母书写,每个单词的第一个字母应该是大写字母。示例:

class FooBar:
    ...

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

from foobar import FooBar

这个约定让我有点困惑。我的直觉告诉我,如果文件名表示一个类,那么它的第一个字母也应该大写,就像 FooBar.py 一样。这在文件名中看起来不太漂亮。也许有人可以告诉我这方面的标准约定是什么?

我希望我的问题可以被理解。 :-)

In python (and some other languages) I have learned, that the name of a class should be written in small letters except for the first letter of each word, which should be a capital letter. Example:

class FooBar:
    ...

A class should go in a file, named the same as the class. In this example it would be a file foobar.py. If I want to import the class foo somewhere I have to do this:

from foobar import FooBar

This convention confuses me a little. My intuition tells me, that if the filename indicates a class, it should be written with the first letter in capitals, too, like FooBar.py. This doesn't look pretty in file names. Perhaps someone could tell me what is the standard convention for this?

I hope I made my question understandable. :-)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

罪#恶を代价 2024-11-13 09:00:09

您所呈现的是标准约定。

包和模块名称

模块应该有简短的、全小写的名称。下划线可以
如果可以提高可读性,则可以在模块名称中使用。 Python 包
还应该有短的、全小写的名称,尽管使用下划线
气馁。

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

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

类名

类名几乎无一例外地使用 CapWords 约定。
供内部使用的类还有一个前导下划线。

Python 风格指南


参见例如

from configparser import ConfigParser

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

What you have presented is the standard convention.

Package and Module Names

Modules should have short, all-lowercase names. Underscores can
be used in the module name if it improves readability. Python packages
should also have short, all-lowercase names, although the use of underscores
is discouraged.

Since module names are mapped to file names, and some file systems are
case insensitive and truncate long names, it is important that module
names be chosen to be fairly short -- this won't be a problem on Unix,
but it may be a problem when the code is transported to older Mac or
Windows versions, or DOS.

When an extension module written in C or C++ has an accompanying Python
module that provides a higher level (e.g. more object oriented)
interface, the C/C++ module has a leading underscore (e.g. _socket).

Class Names

Almost without exception, class names use the CapWords convention.
Classes for internal use have a leading underscore in addition.

(Python Style Guide)


See e.g.

from configparser import ConfigParser

(which, incidentally, was ConfigParser in Python 2.x but changed to be lowercase in 3.x).

逐鹿 2024-11-13 09:00:09

PEP 8 说:

模块应该有简短的、全小写的名称。可以使用下划线
如果可以提高可读性,则可以在模块名称中添加。 Python 包应该
也有短的、全小写的名称,尽管使用下划线
气馁。

我还要指出的是,每个文件不一定只有一个类。相反,您应该将相关的类一起包含在同一个文件中。 (当然,在某些情况下,将一个类放入一个文件中是可行的,但情况并非总是如此)

PEP 8 says:

Modules should have short, all-lowercase names. Underscores can be used
in the module name if it improves readability. Python packages should
also have short, all-lowercase names, although the use of underscores
is discouraged.

I'll also note that you shouldn't necessarily have on only one class per file. Rather you should include related classes together in the same file. (Of course in some cases, having one class to a file works, but that is not always the case)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文