所以我知道有些语言有预期的惯例。
PHP - underscore_case()
[大部分是lolo]
Java - camelCase()
C# - PascalCase()
等
什么是“Pythonic”命名约定?我知道最终并不重要,只是想知道大多数模块是否都采用“最佳实践”方式。
答案 0 :(得分:7)
两个字:PEP 8。
PEP 8是(事实上的)Python风格指南。本文档中的一些要点(我故意留下了一些内容;请阅读原始文档以了解详细信息):
包名称和模块名称:全小写名称。如果提升可读性,可以在模块名称中使用下划线。
班级名称:几乎无一例外,班级名称都使用CapWords惯例。*
全局变量名称:约定与函数的约定大致相同。
函数名称:函数名称应为小写,并根据需要用下划线分隔,以提高可读性。只有在已经是主流风格(例如threading.py
)的情境中才允许使用mixedCase,以保持向后兼容性。
方法名称和实例变量:小写,必要时用下划线分隔,以提高可读性。仅对非公共方法和实例变量使用一个前导下划线。
常量:用大写字母书写,下划线分隔单词。例子包括。
答案 1 :(得分:5)
阅读PEP 8。
这是Python代码的样式指南,由Python的创建者Guido van Rossum编写。
顺便提一下,您的问题的答案是对变量和函数名称使用underscore_case
,对类使用PascalCase
。
答案 2 :(得分:1)
七个字:Google Summer of Code Python Style Guide
请注意,某些命名约定与PEP8不同,而是遵循此样式指南所源自的原始Google Python样式指南。
- “内部”表示模块内部或受保护或私有。 预先设置单个下划线(_)有一些支持保护模块变量和函数(不包括在import *中)。
- 将双下划线(__)预先添加到实例变量或方法有效地使变量或方法对其类是私有的(使用名称修改)。
- 将相关类和顶级函数放在一个模块中。与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