【发布时间】:2009-11-13 22:12:21
【问题描述】:
所以我知道有些语言有预期的约定。
PHP - underscore_case() [大部分情况,lolo]
Java - camelCase()
C# - PascalCase()
等等
什么是“Pythonic”命名约定?我知道这最终并不重要,但我只是想知道大多数模块是否有一种“最佳实践”方式。
【问题讨论】:
标签: python camelcasing pascalcasing
所以我知道有些语言有预期的约定。
PHP - underscore_case() [大部分情况,lolo]
Java - camelCase()
C# - PascalCase()
等等
什么是“Pythonic”命名约定?我知道这最终并不重要,但我只是想知道大多数模块是否有一种“最佳实践”方式。
【问题讨论】:
标签: python camelcasing pascalcasing
两个字:PEP 8。
PEP 8 是(事实上的)Python 风格指南。本文档的一些亮点(我故意遗漏了一些内容;请阅读原始文档的来龙去脉):
包和模块名称:全小写的名称。如果提高可读性,可以在模块名称中使用下划线。
类名:几乎无一例外,类名都使用 CapWords 约定。*
全局变量名称:约定与函数的约定大致相同。
函数名称:函数名称应为小写,必要时用下划线分隔单词以提高可读性。混合大小写仅在已经是主流样式的上下文中允许使用(例如threading.py),以保持向后兼容性。
方法名称和实例变量:为提高可读性,需要用下划线分隔单词的小写字母。仅对非公共方法和实例变量使用一个前导下划线。
常量:全部大写,用下划线分隔单词。示例包括。
【讨论】:
阅读PEP 8。
这是 Python 代码的风格指南,由 Python 的创建者 Guido van Rossum 编写。
顺便说一句,您的问题的答案是使用underscore_case 表示变量和函数名称,使用PascalCase 表示类。
【讨论】:
七个字:Google Summer of Code Python Style Guide
请注意,某些命名约定与 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
【讨论】: