所以我知道有些语言有预期的约定。
PHP - underscore_case()
[在大多数情况下,lolo]
爪哇 -camelCase()
C# -PascalCase()
等等
什么是“Pythonic”命名约定?我知道这最终并不重要,但只是想知道大多数模块是否有一种“最佳实践”方式。
所以我知道有些语言有预期的约定。
PHP - underscore_case()
[在大多数情况下,lolo]
爪哇 -camelCase()
C# -PascalCase()
等等
什么是“Pythonic”命名约定?我知道这最终并不重要,但只是想知道大多数模块是否有一种“最佳实践”方式。
两个字:PEP 8。
PEP 8 是(事实上的)Python 风格指南。本文档的一些亮点(我故意遗漏了一些内容;请阅读原始文档的来龙去脉):
包和模块名称:全小写的名称。如果提高可读性,可以在模块名称中使用下划线。
类名:几乎无一例外,类名都使用 CapWords 约定。*
全局变量名称:约定与函数的约定大致相同。
函数名称:函数名称应为小写,必要时用下划线分隔单词以提高可读性。混合大小写仅在已经是流行样式(例如)的上下文中被允许threading.py
,以保持向后兼容性。
方法名称和实例变量:小写的单词用下划线分隔,以提高可读性。仅对非公共方法和实例变量使用一个前导下划线。
常量:全部大写,用下划线分隔单词。例子包括。
阅读PEP 8。
它是 Python 代码的风格指南,由 Python 的创建者 Guido van Rossum 编写。
顺便说一句,您的问题的答案是underscore_case
用于变量和函数名称以及PascalCase
类。
七个字:Google Summer of Code Python 风格指南
请注意,一些命名约定与 PEP8 不同,而是遵循该样式指南起源的原始 Google Python 样式指南。
- “内部”是指模块内部或类中受保护或私有的。前置单个下划线 (_) 对保护模块变量和函数有一些支持(不包括在 import * from 中)。
- 为实例变量或方法添加双下划线 (__) 可以有效地使变量或方法对其类私有(使用名称修饰)。
- 将相关的类和顶级函数放在一个模块中。与 Java 不同,没有必要将自己限制为每个模块一个类。但是,请确保同一模块中的类和顶级函数具有高内聚性。
- 使用 CapWords 作为类名,而使用 lower_with_under.py 作为模块名。
命名示例
- 套餐:
lower_with_under
- 模块:
lower_with_under
,_lower_with_under
- 课程:
CapWords,
_CapWords
- 例外:
CapWords
- 功能:
firstLowerCapWords()
,_firstLowerCapWords()
- 全局/类常量:
CAPS_WITH_UNDER
,_CAPS_WITH_UNDER
- 全局/类变量:
lower_with_under
,_lower_with_under
- 实例变量:
lower_with_under
,_lower_with_under
(受保护)或__lower_with_under
(私有)- 方法名称:
firstLowerCapWords()
,_firstLowerCapWords()
(受保护)或__firstLowerCapWords()
(私有)- 函数/方法参数:
lower_with_under
- 局部变量:
lower_with_under