Python 规范性

Python 规范性


误用builtin关键字,例如str/len……

from xxx import *
污染命名空间,可能发生命名重叠

type低效使用
低情商:

type(val) is str

高情商:

isinstance(val, str)

对于想要判断的变量可能存在多个类型时,可使用tuple

isinstance(val, (str, list, int))

不使用迭代器
xrange -> range
items -> iteritems
keys -> iterkeys
values -> itervalues
既要遍历索引,又要遍历元素,使用enumerate

Python 性能规范


问题:
大量字符串拼接、切片
大量if/else分支判断造成消耗
对于属性过深的查询,a.b.c.d.e.就会使Python在底层进行一次查表操作

解决:
join代替字符串+=,减小底层字符串开销
恰当使用容器
多用list comprehension,列表推导式比for循环和map都要快
for很慢,有时可用map/reduce/filter/list comprehension代替
多用迭代器
尽量使用builtin函数,不自己手搓,因为builtin函数底层是C写的

posted @ 2021-03-25 14:24  KirinSB  阅读(45)  评论(0编辑  收藏  举报