`

编写高质量代码 改善Python程序的91个建议

阅读更多

本文内容全部由 Python 编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化 8 个方面深入探讨了编写高质量Python代码的技巧与禁忌,一共总结出 91 条宝贵的建议。每条建议对应Python程序员可能会遇到的一个问题。

建议1:理解Pythonic概念

建议2:编写Pythonic代码

建议3:理解Python与C语言的不同之处

建议4:在代码中适当添加注释

建议5:通过适当添加空行使代码布局更为优雅、合理

建议6:编写函数的4个原则

建议7:将常量集中到一个文件

建议8:利用assert语句来发现问题

建议9:数据交换值的时候不推荐使用中间变量

建议10:充分利用Lazy evaluation的特性

建议11:理解枚举替代实现的缺陷

建议12:不推荐使用type来进行类型检查

建议13:尽量转换为浮点类型后再做除法

建议14:警惕eval()的安全漏洞

建议15:使用enumerate()获取序列迭代的索引和值

建议16:分清=与is的适用场景

建议17:考虑兼容性,尽可能使用Unicode

建议18:构建合理的包层次来管理module

建议19:有节制地使用from…import语句

建议20:优先使用absolute import来导入模块

imageimage

建议21:i+=1 不等于 ++i

建议22:使用with自动关闭资源

建议23:使用else子句简化循环(异常处理)

建议24:遵循异常处理的几点基本原则

建议25:避免finally中可能发生的陷阱

建议26:深人理解None,正确判断对象是否为空

建议27:连接字符串应优先使用join而不是+

建议28:格式化字符串时尽量使用.format方式而不是%

建议29:区别对待可变对象和不可变对象

建议30:[]、()和{}: 一致的容器初始化形式

imageimage

建议31:记住函数传参既不是传值也不是传引用

建议32:警惕默认参数潜在的问题

建议33:慎用变长参数

建议34:深入理解str()和repr()的区别

建议35:分清staticmethod和classmethod的适用场景

建议36:掌握字符串的基本用法

建议37:按需选择sort()或者sorted()

建议38:使用copy模块深拷贝对象

建议39:使用Counter进行计数统计

建议40:深入掌握ConfigParser

imageimage

建议41:使用argparse处理命令行参数

建议42:使用pandas处理大型CSV文件

建议43:一般情况使用ElementTree解析XML

建议44:理解模块pickle优劣

建议45:序列化的另一个不错的选择—JSON

建议46:使用traceback获取栈信息

建议47:使用logging记录日志信息

建议48:使用threading模块编写多线程程序

建议49:使用Queue使多线程编程更安全

建议50:利用模块实现单例模式

公众号逆锋起笔专注分享JavaPython、个人成长、职业发展干货,关注即送小编整理的精品编程视频教程;每天下午 14:40 精彩推送,程序员值得关注的技术平台。

建议51:用mixin模式让程序更加灵活

建议52:用发布订阅模式实现松耦合

建议53:用状态模式美化代码

建议54:理解build-in objects

建议55:init() 不是构造方法

建议56:理解名字查找机制

建议57:为什么需要self参数

建议58:理解MRO与多继承

建议59:理解描述符机制

建议60:区别getattr()和getattribute()方法

imageimage

建议61:使用更为安全的property

建议62:掌握metaclass

建议63:熟悉Python对象协议

建议64:利用操作符重载实现中缀语法

建议65:熟悉Python的迭代器协议

建议66:熟悉Python的生成器

建议67:基于生成器的协程及greenlet

建议68:理解GIL的局限性

建议69:对象的管理与垃圾回收

建议70:从PyPI安装包

imageimage

建议71:使用pip和yolk安装、管理包

建议72:做paster创建包

建议73:理解单元测试概念

建议74:为包编写单元测试

建议75:利用测试驱动开发提高代码的可测性

建议76:使用Pylint检查代码风格

建议77:进行高效的代码审查

建议78:将包发布到PyPI

建议79:了解代码优化的基本原则

建议80:借助性能优化工具

imageimage

建议81:利用cProfile定位性能瓶颈

建议82:使用memory_profiler和objgrash剖析内存使用

建议83:努力降低算法复杂度

建议84:掌握循环优化的基本技巧

建议85:使用生成器提高效率

建议86:使用不同的数据结构优化性能

建议87:充分利用set的优势

建议88:使用meltiprocessing克服GIL的缺陷

建议89:使用线程池提高效率

建议90:使用C/C++模块扩展提高性能

建议91:使用Cython编写扩展模块

公众号逆锋起笔专注分享JavaPython、个人成长、职业发展干货,关注即送小编整理的精品编程视频教程;每天下午 14:40 精彩推送,每个程序员值得关注的技术平台。

分享到:
评论

相关推荐

    编写高质量代码:改善Python代码的91个建议-中文版

    ### 编写高质量代码:改善Python代码的91个建议 #### 核心知识点概览 ...通过学习本书,读者不仅可以获得关于如何编写高质量Python代码的具体指导,还能深刻理解Python编程的核心理念和技术细节。

    python高质量代码.zip

    以上只是部分知识点,书中91个建议涵盖了Python编程的各个方面,旨在帮助程序员编写出更高质量的代码,提升开发效率和软件质量。通过实践这些建议,你将能够更好地驾驭Python,创作出更加优雅、高效的代码。

    Python语言程序设计基础教程(北京理工大学版,持续更新).pdf

    Python语言程序设计基础教程是北京理工大学推出的一门不断更新的...总的来说,这本教程为初学者提供了一个全面的Python学习路径,从基础语法到高级应用,涵盖了编程的各个方面,有助于培养良好的编程习惯和思维模式。

    学习 Python 的三种境界.docx

    推荐书籍《编写高质量代码–改善python程序的91个建议》强调了编写优美Python代码的原则,有助于提升编程技巧。阅读Python源码,如《Python源码剖析——深度探索动态语言核心技术》,可以深入理解Python的内部机制。...

    python代码规范

    Python作为一种广泛应用的高级编程语言,其代码规范不仅能够提高代码的可读性和可维护性,还能帮助开发者遵循统一的标准编写高质量的程序。本文旨在深入探讨Python代码规范及其命名规则,确保代码不仅功能强大,而且...

    《Python语言程序设计》课程教学大纲 (2).docx

    建议教材和参考资料可以帮助学生深入理解和巩固课程内容,如董付国的《Python程序设计基础》和张颖、赖勇浩的《编写高质量代码——改善Python程序的91个建议》等。 通过本课程,学生不仅会获得Python编程的技术技能...

    Python代码规范

    Python作为一种广泛应用的高级编程语言,其代码规范不仅能够提高代码的可读性和可维护性,还能帮助开发者遵循统一的标准编写高质量的程序。本文旨在深入探讨Python代码规范的核心内容,包括但不限于代码布局、缩进...

    python教程PPT(共19章)及代码.zip

    Python是一种高级编程...以上19章内容构成了一个全面的Python学习路径,配合代码示例,将帮助你从零开始掌握Python编程,并能深入到更高级的主题。通过这个教程,无论是初学者还是有一定经验的开发者,都能从中受益。

    Python-为人类编写的Python最佳实践指南

    编写高质量的Python代码离不开有效的测试和调试。Python提供unittest模块进行单元测试,pdb模块则用于交互式调试。 十、Python最佳实践 指南可能涵盖PEP 8编码规范,这是Python社区广泛接受的代码风格指南。遵循...

    素贞之91建议——进阶读书笔记.pdf

    Python进阶的读书笔记,实际是编写高质量代码:改善Python的九十一个建议; 对于入门后的童鞋来说,读完此书又可以上升一个层次了!

    关于Python编程的一些问答1

    - 《编写高质量代码:改善Python程序的91个建议》适合中高级Python程序员,而《Expert Python Programming》和《Python源码剖析》则是提升Python编程技能的好书。 7. **成为真正的Pythoner**: - 从C++转向Python...

    Python程序设计基础教学大纲.docx

    - **编写优雅的Python程序**:理解如何写出结构良好、易于维护的代码。 - **解决实际问题**:学会利用Python处理日常生活或工作中遇到的问题。 ### 课程主要内容 #### 第一章 Python语言概述 - **语言概述**:...

    The Hitchhiker's Guide to Python

    书中深入探讨了如何编写高质量的单元测试,并介绍了如何将这些测试集成到持续集成流程中。通过自动化测试,可以确保每次更改都不会破坏现有功能,同时也便于团队协作。 #### 知识点七:并发编程与异步IO 随着现代...

    超完整Python基础入门知识教程Python从入门到进阶知识大全Python开发基础知识能力

    17. 单元测试:学习编写和运行单元测试,理解unittest模块的用法,确保代码质量。 18. 调试技巧:掌握如何使用pdb等工具进行代码调试,找出并修复程序中的错误。 通过这个全面的教程,学习者将能够建立起坚实的...

    Python3.7.2中文文档-2.Python设置和使用-合集

    Python3.7.2是Python编程语言的一个稳定版本,提供了许多增强特性和改进。这篇中文文档集合详细介绍了如何设置和使用Python3.7.2,旨在帮助初学者和经验丰富的开发者更好地理解和操作这个强大的编程环境。 一、安装...

    Python可以这样学.rar

    1. unittest模块:用于编写和执行测试,确保代码质量。 通过这个压缩包提供的资源,你可以系统地学习Python编程,从基础知识到高级应用,逐步提升自己的编程技能。记得理论与实践相结合,多动手实践,才能更好地...

    python编码规范

    本文旨在介绍Python官方推荐的编码规范,帮助开发者编写高质量的Python代码。 #### 二、一致性的重要性 在Python开发过程中,一致性被视为极其重要的因素之一。无论是个人项目还是团队协作,保持代码风格的一致性...

    Python-kmatch一种用于匹配验证筛选Python字典的语言

    Python是一种广泛使用的高级编程语言,尤其...通过熟练掌握kmatch,你可以编写更加健壮和安全的Python应用程序,减少因数据错误而引发的问题。在实际项目中,结合单元测试和异常处理,kmatch能极大地提升你的代码质量。

    python_中文手册

    - **3.2 编程第一步**:这一节提供了开始编程所需的指导,如设置开发环境、编写第一个Python程序等。 #### 第四章 深入流程控制 - **4.1 if语句**:讲解了条件语句的使用,包括单分支、双分支和多分支的情况。 - *...

Global site tag (gtag.js) - Google Analytics