前言
给类、函数、变量取名,只要不违反命名规则,取任何名字都是可以的。要是不明白类、函数、变量的作用不是还有注释吗?的确如此,但如果能够“望名生义”又何必去添加多余的注释呢。另外,统一的命名法也令程序看起来赏心悦目。
一、Guido推荐的命名方法
Python之父Guido推荐在python中使用的命名方法。如下表所示
类别 | public | Internal |
---|---|---|
Modules(模块) | low_with_under | _low_with_under |
Packages(包) | low_with_under | |
Classes(类) | CapWords | _CapWords |
Exceptions(异常) | CapWords | |
Functions(函数) | low_with_under() | _low_with_under() |
Global/Class Constants(全局/类 常量) | CAPS_WITH_UNDER | _CAPS_WITH_UNDER |
Global/Class Variables(全局/类 变量) | low_with_under | _low_with_under |
Instance Variables(实例变量) | low_with_under | _low_with_under(protected) or __low_with_under(private) |
Method Names(方法名) | low_with_under() | _low_with_under()(protected) or __low_with_under()(private) |
Function/Method Parameters(函数/方法 参数) | low_with_under | |
Local Variables(局部变量) | low_with_under |
二、命名约定
约定如下:
- 所谓“内部(Internal)”表示仅模块内可用,或者在类内是保护或私有的。
- 用单下划线(_)开头表示模块变量或函数是protected的(使用import * from 时不会包含)
- 用双下划线(__)开头的实例变量或方法表示类内私有。
- 将相关的类和顶级函数放在同一个模块里,不像Java,没必要限制一个类一个模块。
- 对类名使用大写字母开头的单词(如CapWords,即Pascal风格),但是模块名应该用小写加下划线的方式(如low_with_under.py),尽管已经有很多现存的模块使用类似于CapWords.py这样的命名,但是现在已经不鼓励这样做,因为如果模块名碰巧和类名一致,这会让人困扰。
总结
以上命名规则并没有强制要求,可以选择自己喜欢的命名方法就行,只要自己能看懂,并且交流无障碍就行。