此为重读《编写高质量代码 改善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,非常频繁的应用

关于with的理解 或者

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)