一、Python命名规范
1、标识符
和大多数编程语言一样,一般都要遵守如下规定:
① 只能以字母或下划线开头,且只能包含字母、下划线和数字
② 不能是python的关键字,例如def、class就不能作为标识符
③ Python大小写敏感
④ 不允许使用中文
⑤ 不允许使用歧义单词,例如class_,在python中不要随便使用下划线开头的表示符,因为具有其他含义。
以下关键字不能申明为变量
[
'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else',
'except', 'exec', 'finally', 'for', 'from', 'global','if', 'import', 'in', 'is',
'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield'
]
2、命名规范
模块
模块尽量使用小写命名,首字母保持小写,尽量不要用下划线(除非多个单词,且数量不多的情况)
# 正确的模块名
import urllib
import html_parser
# 不推荐的模块名
import Decoder
类名
类名使用大驼峰命名风格,首字母大写,私有类可用一个下划线开头
class Farm():
pass
class AnimalFarm(Farm):
pass
class _ProtectObj():
pass
函数
函数名一律小写命名,如有多个单词,用下划线隔开
def run():
pass
def run_with_env():
pass
保护函数在函数前加一个下划线_,私有函数在函数前加两个下划线__
说明:关于保护和私有的区别,后续在函数中将会详细讲解
class Person():
def _protect_func():
pass
def __private_func():
pass
变量名
变量名尽量小写, 如有多个单词,用下划线隔开
if __name__ == '__main__':
count = 0
school_name = ''
二、Python代码规范
1、缩进
任何一种编程语言都有各自的语法和编程规范,python之所以以‘优雅,简单’著称,其中一个最重要的原因,就是它的“缩进”,大部分的编程语言都是使用“{}”来表示一个语句块或者代码段,而我们的python与众不同,不走寻常路,用缩进层次来组织代码块,而约定一个缩进是用‘4个空格’来表示,请务必遵守约定俗成的习惯,坚持使用4个空格的缩进,如果是用文本编辑器或者IDE,可以把Tab自动转换为4个空格,然后用tab键来使用缩进,确保不混用Tab和空格。
2、续行
如果单行语句太长,为了美观可以在行结尾用‘\’符号表示续行,表示任然是同一行。
如果使用各种括号,python会认为括号内是一个整体,这个时候跨行不需要用‘\’。
第二行缩进到括号的起始处
foo = long_function_name(var_one, var_two,
var_three, var_four)
3、注释
以‘#’开头的语句是注释,不一定要出现在行首,在某些语句后面也可以加注释,注释是给人看的,可以是任意内容,解释器会忽略掉注释,但注意不要使用无意义的注释。
正确的写法:
x = x + 1 # 边框加粗一个像素
不推荐的写法(无意义的注释):
x = x + 1 # x加1
注释建议
在代码的关键部分(或比较复杂的地方), 能写注释的要尽量写注释,比较重要的注释段, 建议使用多个等号隔开, 可以更加醒目, 突出重要性,如下所示样式:
# =====================================
# 请在此处添加注释语句!!
# =====================================
文档注释
文档注释可出现在模块、函数和类中,一般在声明语句后的第一行位置,不是必须,有必要时可添加。文档注释以""" 开头和结尾, 首行不换行, 如有多行, 末行必需换行,这样在python中就可以通过对象的__doc__对象获取文档。
这里还有个小技巧,在Pycharm这样的IDE工具当中,通常可以先打""" ,然后敲回车,Pycharm会自动生成参数说明模板,剩下的自己补充就可以了:
4、空格
在Python中,为了让代码看起来更清晰,对于空格的使用有些不成文的约定。
① 在二元运算符两边各空一格 [=,-,+=,==,>,in,is not, and]:
# 正确的写法
i = i + 1
submitted += 1
c = (a + b) * (a - b)
# 不推荐的写法
i=i+1
submitted +=1
c = (a+b) * (a-b)
函数的参数列表中,‘,’号之后要有空格
# 正确的写法
def complex(real, imag):
pass
# 不推荐的写法
def complex(real,imag):
pass
② 函数的参数列表中,默认值等号两边不要添加空格
# 正确的写法
def complex(real, imag=0.0):
pass
# 不推荐的写法
def complex(real, imag = 0.0):
pass
③ 左括号之后,右括号之前不要加多余的空格
# 正确的写法
spam(ham[1], {eggs: 2})
# 不推荐的写法
spam( ham[1], { eggs : 2 } )
④ 字典对象的左括号之前不要多余的空格
# 正确的写法
dict['key'] = list[index]
# 不推荐的写法
dict ['key'] = list [index]
⑤ 不要为对齐赋值语句而使用的额外空格
# 正确的写法
x = 1
y = 2
long_variable = 3
# 不推荐的写法
x = 1
y = 2
long_variable = 3
5、空行
类成员函数之间空一行,模块级函数和类定义之间空两行;
class A:
def __init__(self):
pass
def hello(self):
pass
def main():
pass