作者: andylin02学习章节: 全书90条建议速查表关键词 Effective Python, 90条建议, Python进阶, 最佳实践《Effective Python第2版》90条建议完整列表第1章培养Pythonic思维第1条第10条第1条查询自己使用的Python版本第2条遵循PEP 8风格指南第3条了解bytes与str的区别第4条用f-string取代C风格的格式字符串与str.format方法第5条用辅助函数取代复杂的表达式第6条把数据结构直接拆分到多个变量里不要专门通过下标访问第7条尽量用enumerate取代range第8条用zip函数同时遍历两个迭代器第9条不要在for与while循环后面写else块第10条用赋值表达式减少重复代码第2章列表与字典第11条第18条第11条掌握切片操作第12条避免在切片中同时指定起止和步进第13条使用带星号的解包操作来捕获不确定数量的元素第14条用key参数处理复杂的排序逻辑第15条不要过分依赖字典的插入顺序第16条用get处理缺失的字典键第17条用defaultdict处理缺失的字典键而不是setdefault第18条通过实现__missing__方法构造依赖键的默认值第3章函数第19条第26条第19条不要把函数返回的多个值拆分到三个以上变量中第20条遇到意外状况时应该抛出异常不要返回None第21条了解如何在闭包里面使用外围作用域中的变量第22条用数量可变的位置参数给函数设计清晰的参数列表第23条用关键字参数给函数设计清晰的参数列表第24条用None和文档字符串来描述动态默认参数第25条用仅限关键字参数和位置参数来设计清晰的函数接口第26条用functools.wraps定义函数装饰器第4章推导与生成第27条第36条第27条用列表推导取代map与filter第28条在推导式中避免使用超过两个控制子表达式第29条用赋值表达式消除推导中的重复计算第30条考虑用生成器代替返回列表第31条当心迭代器参数的多次遍历第32条对于大数据量的推导考虑用生成器表达式第33条用yield from组合多个生成器第34条不要用send向生成器注入数据第35条不要用throw改变生成器的状态第36条考虑用itertools来拼合迭代器与生成器第5章类与接口第37条第43条第37条用组合代替多层嵌套的内置类型第38条让简单的接口接受函数而不是类的实例第39条使用classmethod实现多态构造第40条用super来初始化父类第41条使用Mixin类来混合功能第42条优先使用公有属性而非私有属性第43条继承collections.abc来定制容器类型第6章元类与属性第44条第51条第44条用纯属性取代getter和setter方法第45条使用property替代属性重构第46条用描述符复用property验证逻辑第47条使用__getattr__实现惰性属性第48条使用__init_subclass__验证子类定义第49条使用__init_subclass__注册已有的类第50条使用__set_name__为类属性加上注解第51条优先使用类装饰器而不是元类第7章并发与并行第52条第59条第52条明白线程、子进程与协程的区别第53条使用threading处理阻塞式I/O但避开GIL限制第54条使用multiprocessing绕过GIL实现真正并行第55条使用asyncio编写高并发I/O程序第56条使用Queue协调线程之间的工作第57条使用concurrent.futures简化并发执行第58条避免竞态条件第59条避免死锁第8章稳定性与性能第60条第68条第60条用raise合理利用异常第61条使用raise from表达异常链第62条使用with语句管理资源和上下文第63条使用tracemalloc追踪内存使用第64条使用timeit和cProfile分析性能第65条使用__slots__减少内存开销第66条了解字符串驻留与intern第67条用弱引用防止内存泄漏第68条正确选择和实现容器第9章测试与调试第69条第76条第69条使用unittest编写测试第70条用setUp与tearDown隔离测试第71条使用Mock测试复杂依赖第72条封装依赖以便于模拟第73条使用交互式调试器第74条使用内置的pdb模块第75条用repr字符串输出调试信息第76条使用tracemalloc追踪内存泄漏第10章协作开发第77条第90条第77条用包来组织代码第78条使用恰当的导入方式第79条用__all__控制导出的内容第80条小心在包的__init__中导入模块第81条尊重标准库第82条用一致的风格编写文档字符串第83条为每个函数、类和模块编写文档字符串第84条保持模块名称简单且唯一第85条使用main函数第86条定义经过良好测试的稳定API接口第87条了解模块级别的可执行代码第88条让代码兼容多个Python版本第89条使用虚拟环境隔离依赖第90条检查包的发行版是否正确本文为个人学习笔记仅用于知识分享。如有错误欢迎指正。 点赞 收藏 分享让更多开发者看到这篇深度解析❤️ 如果觉得有用请给个赞支持一下作者