“我没写过诗,但是有人说我写过的代码,像诗一样优雅。 —— 雷军”
模块、包名:小写字母、单词之间用“_”分割,但尽量不要用下划线(除非多个单词,且数量不多的情况)
类名: 所有单词的首字母大写;内部类可以使用额外的前导下划线。
普通函数、变量:
全局变量名、常量名:大写字母,单词之间用_分割(所有语言皆是如此)
类中的成员:
异常:以“Error”作为后缀。
语句:
缩写
命名应当尽量使用全拼写的单词,缩写的情况有如下两种:
1. 常用的缩写,如XML、ID等,在命名时也应只大写首字母,如XmlParser。
2. 命名中含有长单词,对某个单词进行缩写。这时应使用约定成俗的缩写方式。
下划线有关:
一个前导下划线:protected修饰变量,即保护变量,意思是只有类对象和子类对象自己能访问到这些变量;
一个后缀下划线:避免关键字冲突。
两个前导下划线:private修饰变量,私有成员;只有类对象自己能访问,连子类对象也不能访问到这个数据。
两个前导和两个后缀下划线(系统专有变量):“魔”(有特殊用途)对象或者属性,例如__init__或者__file__。绝对不要创造这样的名字,而只是使用它们。
_xxx 不能用'from module import *'导入
__xxx__ 系统定义名字
__xxx 类中的私有变量名
核心风格:避免用下划线作为变量名的开始。
因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有的”,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。
行长度
1)每行不超过80个字符
2)不要使用反斜杠连接行.
3)Python会将圆括号, 中括号和花括号中的行隐式的连接起来, 你可以利用这个特点。如果需要, 你可以在表达式外围增加一对额外的圆括号。
Yes: foo_bar(self, width, height, color='black', design=None, x='foo',
emphasis=None, highlight=0)
if (width == 0 and height == 0 and
color == 'red' and emphasis == 'strong'):
4)如果一个文本字符串在一行放不下, 可以使用圆括号来实现隐式行连接:
x = ('This will build a very long long '
'long long long long long long string')
在注释中,如果必要,将长的URL放在一行上。
No: # See details at
# http://www.example.com/us/developer/documentation/api/content/\
# v2.0/csv_file_name_extension_full_specification.html
括号
1)宁缺毋滥的使用括号
2)顶级定义之间空两行, 方法定义之间空一行
使用空格
1)在二元运算符两边各空一格[=,-,+=,==,>,in,is not, and]:
2)函数的参数列表中,之后要有空格
3)函数的参数列表中,默认值等号两边不要添加空格
4)左括号之后,右括号之前不要加多余的空格
5)字典对象的左括号之前不要多余的空格
帕斯卡命名法(又叫大驼峰式命名法。):
每一个单字的首字母都采用大写字母的命名格式,被称为“Pascal命名法”。
单字之间不以空格断开或连接号(-)、底线(_)连结,第一个单字首字母采用大写字母;后续单字的首字母亦用大写字母,例如:FirstName、LastName。
驼峰式命名法:
1、小驼峰式命名法(lower camel case):
第一个单词以小写字母开始,第二个单词的首字母大写。例如:firstName、lastName。
2、大驼峰式命名法(upper camel case):
每一个单词的首字母都采用大写字母,例如:FirstName、LastName、CamelCase,也被称为 Pascal 命名法。
匈牙利命名法:
开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,要求单词第一个字母大写。
int iMyAge; “i”是int类型的缩写;
char cMyName[10]; “c”是char类型的缩写;
float fManHeight; “f”是float类型的缩写;