《编写高质量Python代码的59个有效方法》——导读

简介: 本节书摘来自华章社区《编写高质量Python代码的59个有效方法》一书中的目录,作者[美]布雷特·斯拉特金(Brett Slatkin),更多章节内容可以访问云栖社区“华章社区”公众号查看

本节书摘来自华章社区《编写高质量Python代码的59个有效方法》一书中的目录,作者[美]布雷特·斯拉特金(Brett Slatkin),更多章节内容可以访问云栖社区“华章社区”公众号查看


1f4ca94fced6f215092bbd1a07f90cf85ca0cd86

目  录

前  言
致  谢
第1章 用Pythonic方式来思考
第1条:确认自己所用的Python版本 第2条:遵循PEP 8风格指南
第3条:了解bytes、str与unicode的区别
第4条:用辅助函数来取代复杂的表达式
第5条:了解切割序列的办法
第6条:在单次切片操作内,不要同时指定start、end和stride
第7条:用列表推导来取代map和f?ilter
第8条:不要使用含有两个以上表达式的列表推导
第9条:用生成器表达式来改写数据量较大的列表推导
第10条:尽量用enumerate取代range
第11条:用zip函数同时遍历两个迭代器
第12条:不要在for和while循环后面写else块
第13条:合理利用try/except/else/f?inally结构中的每个代码块
第2章 函数
第14条:尽量用异常来表示特殊情况,而不要返回None
第15条:了解如何在闭包里使用外围作用域中的变量
第16条:考虑用生成器来改写直接返回列表的函数
第17条:在参数上面迭代时,要多加小心
第18条:用数量可变的位置参数减少视觉杂讯
第19条:用关键字参数来表达可选的行为
第20条:用None和文档字符串来描述具有动态默认值的参数
第21条:用只能以关键字形式指定的参数来确保代码明晰
第3章 类与继承
第22条:尽量用辅助类来维护程序的状态,而不要用字典和元组
第23条:简单的接口应该接受函数,而不是类的实例
第24条:以@classmethod形式的多态去通用地构建对象
第25条:用super初始化父类
第26条:只在使用Mix-in组件制作工具类时进行多重继承
第27条:多用public属性,少用private属性
第28条:继承collections.abc以实现自定义的容器类型
第4章 元类及属性
第29条:用纯属性取代get和set方法
第30条:考虑用@property来代替属性重构
第31条:用描述符来改写需要复用的@property方法
第32条:用__getattr__、__getattribute__和__setattr__实现按需生成的属性
第33条:用元类来验证子类
第34条:用元类来注册子类
第35条:用元类来注解类的属性
第5章 并发及并行
第36条:用subprocess模块来管理子进程
第37条:可以用线程来执行阻塞式I/O,但不要用它做平行计算
第38条:在线程中使用Lock来防止数据竞争
第39条:用Queue来协调各线程之间的工作
第40条:考虑用协程来并发地运行多个函数
第41条:考虑用concurrent.futures来实现真正的平行计算
第6章 内置模块
第42条:用functools.wraps定义函数修饰器
第43条:考虑以contextlib和with语句来改写可复用的try/f?inally代码
第44条:用copyreg实现可靠的pickle操作
第45条:应该用datetime模块来处理本地时间,而不是用time模块
第46条:使用内置算法与数据结构
第47条:在重视精确度的场合,应该使用decimal
第48条:学会安装由Python开发者社区所构建的模块
第7章 协作开发
第49条:为每个函数、类和模块编写文档字符串
第50条:用包来安排模块,并提供稳固的API
第51条:为自编的模块定义根异常,以便将调用者与API相隔离
第52条:用适当的方式打破循环依赖关系
第53条:用虚拟环境隔离项目,并重建其依赖关系
第8章 部署
第54条:考虑用模块级别的代码来配置不同的部署环境
第55条:通过repr字符串来输出调试信息
第56条:用unittest来测试全部代码
第57条:考虑用pdb实现交互调试
第58条:先分析性能,然后再优化
第59条:用tracemalloc来掌握内存的使用及泄漏情况

相关文章
|
3天前
|
并行计算 C语言 开发者
优化Python代码的五大技巧
Python作为一种流行的编程语言,在各种应用场景中广泛使用。然而,随着项目规模的增长和需求的变化,Python代码的性能和可维护性也成为了关键问题。本文将介绍优化Python代码的五大技巧,帮助开发者提升代码效率和质量。
|
11天前
|
Python
python魔法方法如何应用
【4月更文挑战第12天】这个Python示例展示了类继承和方法重写。`Student`类继承自`Person`,并覆盖了`say_hello`方法。通过`super().__init__(name)`调用父类的`__init__`初始化`name`属性,`Student`添加了`age`属性,并在重写的`say_hello`中使用。创建`Student`实例`student`并调用其`say_hello`,输出定制的问候信息。
19 1
|
4天前
|
存储 关系型数据库 MySQL
Python搭建代理IP池实现存储IP的方法
Python搭建代理IP池实现存储IP的方法
|
4天前
|
Python
Python动态IP代理防止被封的方法
Python动态IP代理防止被封的方法
|
5天前
|
数据采集 存储 安全
python检测代理ip是否可用的方法
python检测代理ip是否可用的方法
|
6天前
|
数据安全/隐私保护 Python
Python中的装饰器:提升代码可读性与灵活性
Python中的装饰器是一种强大的工具,可以在不改变函数原有逻辑的情况下,为函数添加额外的功能。本文将介绍装饰器的基本概念和用法,并通过实例演示如何利用装饰器提升代码的可读性和灵活性,使代码更加简洁、易于维护。
|
6天前
|
BI 开发者 数据格式
Python代码填充数据到word模板中
【4月更文挑战第16天】
|
6天前
|
数据可视化 测试技术 Python
在Python和R中使用交叉验证方法提高模型性能
在Python和R中使用交叉验证方法提高模型性能
|
6天前
|
存储 监控 开发工具
对象存储OSS产品常见问题之python sdk中的append_object方法支持追加上传xls文件如何解决
对象存储OSS是基于互联网的数据存储服务模式,让用户可以安全、可靠地存储大量非结构化数据,如图片、音频、视频、文档等任意类型文件,并通过简单的基于HTTP/HTTPS协议的RESTful API接口进行访问和管理。本帖梳理了用户在实际使用中可能遇到的各种常见问题,涵盖了基础操作、性能优化、安全设置、费用管理、数据备份与恢复、跨区域同步、API接口调用等多个方面。
36 9
|
7天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
44 0