【发布时间】:2017-06-26 22:12:12
【问题描述】:
我知道 Python 中的类通常使用 camelCase 进行大小写。
包含类的文件也是驼峰式的,特别是如果文件只包含类,这也是正常的约定吗?
例如,类className 是否也应该存储在className.py 中而不是class_name.py 中?
【问题讨论】:
标签: python naming-conventions filenames camelcasing
我知道 Python 中的类通常使用 camelCase 进行大小写。
包含类的文件也是驼峰式的,特别是如果文件只包含类,这也是正常的约定吗?
例如,类className 是否也应该存储在className.py 中而不是class_name.py 中?
【问题讨论】:
标签: python naming-conventions filenames camelcasing
以下答案主要来自this answer。
如果您要遵循 PEP 8,则应坚持全小写名称,并带有可选的下划线。
引用PEP 8's naming conventions for packages & modules:
模块应该有简短的全小写名称。如果提高可读性,可以在模块名称中使用下划线。
对于课程:
类名通常应使用 CapWords 约定。
模块、类和包之间的区别参见this answer:
Python 模块只是一个 Python 源文件,它可以公开类、函数和全局变量。
【讨论】:
官方约定是文件名全部使用小写(正如其他人已经声明的那样)。但是,没有提到原因……
由于 Python 可以跨平台工作(并且以这种方式使用它很常见),但文件系统在使用大小写方面有所不同,因此最好只消除替代情况。例如,在 Linux 中,可以将 MyClass.py 和 myclass.py 放在同一个目录中。在 Windows 中并非如此!
在相关说明中,如果您在 git 存储库中有 MyClass.py 和 myclass.py,或者甚至只是更改同一个文件的大小写,那么当您从 Linux 和 Windows 推送/拉出时,git 可能会表现得很时髦。
而且,虽然几乎没有主题,但在同一方面,SQL 也有这些相同的问题,不同的标准和配置可能允许也可能不允许表名使用大写。
我个人觉得即使在文件名上阅读 TitleCasing / camelCasing 也会更愉快,但是当你做任何可以跨平台工作的事情时,最安全的是不要这样做。
【讨论】:
类名和包含该类的文件的命名约定有所不同。这种误解可能来自像 java 这样的语言,每个类都有一个文件是很常见的。
在 python 中,每个模块可以有多个类(一个简单的 .py 文件)。此模块/文件中的类应根据类命名约定进行调用:类名通常应使用 CapWords 约定。 包含此类的文件应遵循模块命名约定:模块应具有简短的全小写名称。如果提高可读性,可以在模块名称中使用下划线。
=> CamelCase 应该在文件 camelcase.py(或 camel_case.py 如果需要)中
【讨论】:
我的问题是,拥有该文件是否也是正常的约定? 包含类也是驼峰式的,特别是如果文件只有 包含类
简短回答:不。
更长的答案:应该全部小写并根据需要下划线。
来自PEP8 "Package and Module Names":
模块应该有简短的全小写名称。下划线可以 如果它提高可读性,则在模块名称中使用。 Python 包 还应该有简短的全小写名称,尽管使用 不鼓励使用下划线。
如果您不清楚 module 是什么:
模块是包含 Python 定义和语句的文件。这 文件名是后缀.py的模块名。
【讨论】: