我知道Python中的类通常使用camelCase来填充。
如果文件只包含类,那么包含该类的文件也是camelCase也是常规约定吗?
例如,类className
是否也应存储在className.py
而不是class_name.py
中?
答案 0 :(得分:20)
以下答案主要来自this answer。
如果你要遵循PEP 8,你应该坚持全小写的名字,并带有可选的下划线。
引用PEP 8's naming conventions for packages & modules:
模块应该有简短的全小写名称。如果提高可读性,可以在模块名称中使用下划线。
对于课程:
类名通常应使用CapWords惯例。
有关模块,类和包之间的区别,请参阅this answer:
Python模块只是一个Python源文件,可以公开类,函数和全局变量。
答案 1 :(得分:2)
我的问题是,拥有该文件是否也是正常的惯例 包含类也是camelCase'd,特别是如果只有文件 包含类
简短回答:不。
更长的答案:应该根据需要全部小写和下划线。
来自PEP8 "Package and Module Names":
模块应该有简短的全小写名称。下划线可以 如果它提高了可读性,则在模块名称中使用。 Python包 也应该有简短的全小写名称,尽管使用 不鼓励下划线。
如果您不清楚module是什么:
模块是包含Python定义和语句的文件。该 文件名是附加后缀.py的模块名称。
答案 2 :(得分:2)
类名和包含该类的文件的命名约定有所不同。这种误解可能来自Java之类的语言,在这种情况下,每个类通常只有一个文件。
在python中,每个模块可以有多个类(一个简单的.py文件)。应根据类命名约定调用此模块/文件中的类:类名称通常应使用CapWords约定。 包含此类的文件应遵循模块命名约定:模块应使用短小写全名。如果可以提高模块的可读性,则可以在模块名称中使用下划线。
=> CamelCase应该在camelcase.py文件中(如果需要,也可以在camel_case.py文件中)
答案 3 :(得分:1)
正式的约定是对文件名使用所有小写字母(正如其他人已经指出的那样)。但是,原因尚未提及...
由于Python在跨平台上工作(并且通常以这种方式使用),但是文件系统在使用大小写时有所不同,因此最好只消除其他情况。例如,在Linux中,可以将MyClass.py和myclass.py放在同一目录中。在Windows中不是这样!
在相关说明中,如果您在git存储库中包含MyClass.py和myclass.py,或者只是更改同一文件的大小写,当您从Linux和Windows推入/拉入时git可能会表现得很时髦。 / p>
而且,虽然主题不多,但出于同样的原因,SQL具有这些相同的问题,即不同的标准和配置可能会或可能不允许在表名上使用UpperCases。
就我个人而言,即使在文件名上阅读TitleCasing / camelCasing也更令人愉悦,但是当您做任何可以跨平台工作的事情时,最安全的做法就是不要这样做。