此为重读《编写高质量代码 改善python程序的91个建议》的部分总结和结合自身经验的,持续更新反思中……
tip1 Pythonic概念
python的特色
# 变量交换,tip9也提及
a, b = b, a
# 遍历容器
for i in alist:
do_sth_with(i)
# 迭代器
with open(path, 'r') as f:
do_sth_with(f)
# 列表逆序,作者认为第二种方法更pythonic
a='abcdefg'
print a[::-1]
print list(reversed(a))
#理解标准库,使用内置函数,如字符串格式化str.format()
'{greet} from {language}'.format(greet='hello',language='python')
注,字符串不用%而多用format,非常频繁的应用
tip3 python与C语言不同
1.不用{}而严格缩进
2.单引号和双引号不区分使用
3.使用X if C else Y来替代C?X:Y
注,此用法非常频繁
4.使用if...elif...else来替代switch...case
…
tip6 函数编写
1.短小,嵌套层次不要过深,三层内为宜
2.参数设计简明,个数不宜过多
3.参数向下兼容,新版本增加参数时使用默认参数 注,版本迭代的时候会用到
4.一个函数只做一件事,保证函数语句粒度一致性
tip7 常量集中到一个文件
注,实际应用中一般有const.py,其中最多的就是枚举类型,这个正好是python3.4新增的特性,tip11也提到这个,不再赘述
from enum import Enum
class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3
tip10 充分利用lazy evaluation特性
惰性计算
1.考虑if条件判断的顺序,避免不必要的计算
2.生成器,用yield延迟计算
tip12 类型检查尽量不使用type
type(n) is types.IntType
isinstance(n,int)