|
规范:
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()代替直接比较类型 |