python编码规范以及编码技巧

来源:互联网 发布:android直播源码 编辑:程序博客网 时间:2024/06/09 22:14

规范:

1、使用space,不使用用tab,

即使,使用tab也要在编辑器中设置4个字节


2、每行只能有80个字符,超出使用  \ 来分割


3、import规则:
a.每行只导入一个包,
b.包的导入顺序:标准库,自定义


4、空格规则:
任何{([])}内的元素都不要空格
任何,;"之前都不能空格
任何函数调用函数名、list、dict、type和()之间不能有空格
赋值以及运算符周围空一格
不要在用于指定关键字参数或默认参数值的'='号周围使用空格


5、注释
发布项目一定要用英文书写,平时可以用中文书写。
单行:#
多行:'''


6、永远不要用小写字母i,l,大写字母:O,I来做变量名


7、命名:
类:大写字母开头
函数:小写字母开头,大写字母分隔
私有属性:必须两个前导下划线开头
私有方法:__使用两个下划线开头
公有属性除非命名冲突,要不然不加_
常量全部使用大写的字母和下划线组成。
动词和形容词放在名词后面


8、None之类的单值进行比较,应该永远用:'is'或'is not'来做


9、对序列、(字符串(strings)、列表(lists)、元组(tuples)), 
使用空列表是false这个事实,
因此使用"if not seq"或"if seq"
比 "if len(seq)"或"if not len(seq)"好

10、不要用 == 来比较布尔型的值以确定是True或False(


一些技巧:


交换赋值:
a,b = b,a


解包操作:
l = ['a','b','c']
first_name,second_name,last_name  = l


使用操作符 in:


字符串合并操作join:
colors = ["red","blue","green","yellow"]
result = ''.join(colors)


字典键值列表:
for key in dict:
dict[key]


字典操作get:
dict.get(key,default)


判断真伪:
if x :
......
if item:
......


遍历列表以及索引:
items = "zero one two three".split()
for i,item in enumerate(items):
print i,item


列表推导:
new = [fn(item) for item in list if condition(item)]


循环嵌套:

from itertools import product

from x,y,z in product(x_list,y_list,z_list)


使用imap/ifilter 代替map/filter
from itertools import ifilter imap
reduce(rf,ifilter(ff,map(mf,a_list)))




使用any/all




使用property将属性装饰方法




使用with处理文件或者多线程操作:
with open("some_file.txt",a+) as f:
f.write()




对象类型的比较用isinstance()代替直接比较类型