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

Auf*_*ind 53 python filenames naming-conventions classname

在python(和其他一些语言)我学到了,类的名称应该用小写字母写,除了第一个字母,它应该是大写字母.例:

class FooBar:
    ...
Run Code Online (Sandbox Code Playgroud)

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

from foobar import FooBar
Run Code Online (Sandbox Code Playgroud)

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

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

Kat*_*iel 55

你提出的是标准惯例.

包和模块名称

模块应具有简短的全小写名称.如果提高可读性,则可以在模块名称中使用下划线.Python包也应该有简短的全小写名称,但不鼓励使用下划线.

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

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

班级名称

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

(Python风格指南)


见例如

from configparser import ConfigParser
Run Code Online (Sandbox Code Playgroud)

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

  • 我不禁注意到这描述了模块和类名,但没有提到文件名.我相信问题是两个问题.什么是每个python教程和评论我发现没有人提到如何命名文件!?!?! (11认同)
  • @Scott命名模块的约定是您问题的答案。模块基本上是Python中的文件,包含一个或多个类和/或函数。 (2认同)

Win*_*ert 12

PEP 8说:

模块应具有简短的全小写名称.如果提高可读性,则可以在模块名称中使用下划线.Python包也应该有简短的全小写名称,但不鼓励使用下划线.

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

  • 好点!如果某人在一个文件中看到三个类的高级图片时遇到问题,那么支持代码折叠的好编辑器会有所帮助. (3认同)