![bd696f1c68cacffd76fa035d0cd473c8.png](https://i-blog.csdnimg.cn/blog_migrate/78d444b343be598e159a48fb9728fd47.jpeg)
这里是<编写高质量Python代码的59个有效方法>的笔记(上半部分), 对于其中的59个Tips, 选取了部分, 做了浓缩和精炼, 并在适当的地方做了补充说明. 需要注意的是, 每个人使用python的场景, 习惯和合作伙伴都不同, 因此对于原书中的建议我根据自身情况做了删减和修改, 希望读者在阅读时也不要将这些建议奉为圭臬, 而需要知其所以为而化为自己的习惯.
上集
内置模块
- 用
functools.wraps
定义函数修饰器来避免help
函数失效等问题. - 用
contextlib
和with
语句来改写可复用的try/finally
代码可以更好的管理上下文. - 使用内置算法和数据结构以提升速度, 双向队列
collections.deque
,有序字典collections.OrderedDict
, 带默认值字典collections.defaultdict
, 堆deapq
, 二分查找bisect
, 以及itertools
中大量迭代器相关工具.
协作开发
- 为每个函数, 类和模块编写文档字符串.
- 谨慎使用
from foo import *
形式的引入语句. - 为自编的模块定义根异常, 以便将调用者和API相隔离.
- 注意循环依赖的问题, 可以通过调整引入顺序,动态引入等方法解决该问题, 但是最好的方法是顶层设计上就避免出现这种依赖.
- 使用虚拟环境隔离项目.
部署
- 实现
__repr__
协议来给出必要的信息以帮助调试. - 用
unittest
测试代码. - 学会使用
pdb
来调试. - 使用
cProfile
模块来分析代码性能以便优化.