Python编码命名规范


1、模块

  • 模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)
# 正确的模块名
import decoder
import html_parser

# 不推荐的模块名
import Decoder

2、类名

  • 类名使用驼峰(CamelCase)命名风格,首字母大写,私有类可用一个下划线开头
class Farm():    
pass

class AnimalFarm(Farm):
pass

class _PrivateFarm(Farm):
pass
  • 将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块.

3、函数

  • 函数名一律小写,如有多个单词,用下划线隔开
def run():    
pass

def run_with_env():
pass
  • 私有函数在函数前加一个下划线_
class Person():     

def _private_func():
pass

4、变量名

  • 变量名尽量小写, 如有多个单词,用下划线隔开
if __name__ == '__main__':
count = 0
school_name = ''
  • 常量采用全大写,如有多个单词,使用下划线隔开
MAX_CLIENT = 100
MAX_CONNECTION = 1000
CONNECTION_TIMEOUT = 600

5、常量

  • 常量使用以下划线分隔的大写命名
MAX_OVERFLOW = 100

Class FooBar:

def foo_bar(self, print_):
print(print_)




命名规范
总体原则,新编代码必须按下面命名风格进行,现有库的编码尽量保持风格。

1 尽量单独使用小写字母‘l’,大写字母‘O’等容易混淆的字母。

2 模块命名尽量短小,使用全部小写的方式,可以使用下划线。

3 包命名尽量短小,使用全部小写的方式,不可以使用下划线。

4 类的命名使用CapWords的方式,模块内部使用的类采用_CapWords的方式。

5 异常命名使用CapWords+Error后缀的方式。

6 全局变量尽量只在模块内有效,类似C语言中的static。

实现方法有两种,一是__all__机制;二是前缀一个下划线。

7 函数命名使用全部小写的方式,可以使用下划线。

8 常量命名使用全部大写的方式,可以使用下划线。

9 类的属性(方法和变量)命名使用全部小写的方式,可以使用下划线。

10 类的属性有3种作用域public、non-public和subclass API,

可以理解成C++中的public、private、protected,non-public属性前,前缀一条下划线。

11 类的属性若与关键字名字冲突,后缀一下划线,尽量不要使用缩略等其他方式。

12 为避免与子类属性命名冲突,在类的一些属性前,前缀两条下划线。

比如:类Foo中声明__a,访问时,只能通过Foo._Foo__a,避免歧义。

如果子类也叫Foo,那就无能为力了。

13 类的方法第一个参数必须是self,而静态方法第一个参数必须是cls。
分享到