编写Python高质量代码,资深程序员的 91 个建议
本文内容全部由 Python 编码的最佳实践组成,从基本原则、惯用法、语法、库、设计模式、内部机制、开发工具和性能优化 8 个方面深入探讨了编写高质量 Python
代码的技巧与禁忌,一共总结出 91 条宝贵的建议。每条建议对应 Python
程序员可能会遇到的一个问题。很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789
建议1:理解Pythonic概念
建议2:编写Pythonic代码
建议3:理解Python与C语言的不同之处
建议4:在代码中适当添加注释
建议5:通过适当添加空行使代码布局更为优雅、合理
建议6:编写函数的4个原则
建议7:将常量集中到一个文件
建议8:利用assert语句来发现问题
建议9:数据交换值的时候不推荐使用中间变量
建议10:充分利用Lazy evaluation的特性
image
建议11:理解枚举替代实现的缺陷
建议12:不推荐使用type来进行类型检查
建议13:尽量转换为浮点类型后再做除法
建议14:警惕eval()的安全漏洞
建议15:使用enumerate()获取序列迭代的索引和值
建议16:分清=与is的适用场景
建议17:考虑兼容性,尽可能使用Unicode
建议18:构建合理的包层次来管理module
建议19:有节制地使用from…import语句
建议20:优先使用absolute import来导入模块
image
建议21:i+=1 不等于 ++i
建议22:使用with自动关闭资源
建议23:使用else子句简化循环(异常处理)
建议24:遵循异常处理的几点基本原则
建议25:避免finally中可能发生的陷阱
建议26:深人理解None,正确判断对象是否为空
建议27:连接字符串应优先使用join而不是+
建议28:格式化字符串时尽量使用.format方式而不是%
建议29:区别对待可变对象和不可变对象
建议30:[]、()和{}: 一致的容器初始化形式
image
建议31:记住函数传参既不是传值也不是传引用
建议32:警惕默认参数潜在的问题
建议33:慎用变长参数
建议34:深入理解str()和repr()的区别
建议35:分清staticmethod和classmethod的适用场景
建议36:掌握字符串的基本用法
建议37:按需选择sort()或者sorted()
建议38:使用copy模块深拷贝对象
建议39:使用Counter进行计数统计
建议40:深入掌握ConfigParser
image
建议41:使用argparse处理命令行参数
建议42:使用pandas处理大型CSV文件
建议43:一般情况使用ElementTree解析XML
建议44:理解模块pickle优劣
建议45:序列化的另一个不错的选择—JSON
建议46:使用traceback获取栈信息
建议47:使用logging记录日志信息
建议48:使用threading模块编写多线程程序
建议49:使用Queue使多线程编程更安全
建议50:利用模块实现单例模式
公众号 逆锋起笔
专注分享 Java
、 Python
、个人成长、职业发展干货,关注即送小编整理的精品编程视频教程;每天下午 14:40 精彩推送,程序员值得关注的技术平台。
建议51:用mixin模式让程序更加灵活
建议52:用发布订阅模式实现松耦合
建议53:用状态模式美化代码
建议54:理解build-in objects
建议55:init() 不是构造方法
建议56:理解名字查找机制
建议57:为什么需要self参数
建议58:理解MRO与多继承
建议59:理解描述符机制
建议60:区别getattr()和getattribute()方法
image
建议61:使用更为安全的property
建议62:掌握metaclass
建议63:熟悉Python对象协议
建议64:利用操作符重载实现中缀语法
建议65:熟悉Python的迭代器协议
建议66:熟悉Python的生成器
建议67:基于生成器的协程及greenlet
建议68:理解GIL的局限性
建议69:对象的管理与垃圾回收
建议70:从PyPI安装包
image
建议71:使用pip和yolk安装、管理包
建议72:做paster创建包
建议73:理解单元测试概念
建议74:为包编写单元测试
建议75:利用测试驱动开发提高代码的可测性
建议76:使用Pylint检查代码风格
建议77:进行高效的代码审查
建议78:将包发布到PyPI
建议79:了解代码优化的基本原则
建议80:借助性能优化工具
image
建议81:利用cProfile定位性能瓶颈
建议82:使用memory_profiler和objgrash剖析内存使用
建议83:努力降低算法复杂度
建议84:掌握循环优化的基本技巧
建议85:使用生成器提高效率
建议86:使用不同的数据结构优化性能
建议87:充分利用set的优势
建议88:使用meltiprocessing克服GIL的缺陷
建议89:使用线程池提高效率
建议90:使用C/C++模块扩展提高性能
建议91:使用Cython编写扩展模块
编写Python高质量代码,资深程序员的 91 个建议相关推荐
- 编写高质量代码改善程序的157个建议:第87个建议之区分WPF和WinForm的线程模型...
今天有时间了,继续<编写高质量代码改善程序的157个建议>的阅读,当我阅读到建议87的时候,里面的一些代码示例和文中所说的不一致了,是不是我现在用的是NetFramework 4.0的缘故 ...
- python是c语言写的吗-先学C语言还是Python?资深程序员往往是这样建议的!
编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...
- 没学c语言可以学python_先学C语言还是Python?资深程序员往往是这样建议的!
编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...
- python和c先学哪个-先学C语言还是Python?资深程序员往往是这样建议的!
编程是一门手艺, 学习编程首先要有目的,w3cschool先带大家了解一下自己需要学习什么吧! 0.学一门语言 其实学什么语言都可以,因为语言都是互通的,C语言也好, 对于初学者来说,Python 也 ...
- 编写python高质量python代码的59个有效方法
第1条:确认自己的python版本 第2条:遵循PEP8的风格 1.空格 对于 占据多行的长表达式来说, 除了首行之外的其余各行都应该在通常的缩进级别上再加4个空格. 每行字符数不应该超过79. 2. ...
- python代码续航的方法_编写python高质量python代码的59个有效方法
第1条:确认自己的python版本 第2条:遵循PEP8的风格 1.空格 对于 占据多行的长表达式来说, 除了首行之外的其余各行都应该在通常的缩进级别上再加4个空格. 每行字符数不应该超过79. 2. ...
- 编写高质量代码:改善Java的151个建议五(类、对象、方法)31-51
该书籍PDF下载地址:http://download.csdn.net/download/muyeju/10001473 31.接口中不要存在实现代码 接口中不能存在实现代码(虽然可以实现,但是如果把 ...
- java151和152_编写高质量代码:改善Java的151个建议(性能和效率)132-133
132.提升Java性能的方法 1.不要在循环里面计算(如果在循环里面计算,每循环一次就计算一次,这会降低系统效率) 例:while(i 2.尽量把不变的属性.方法.数组等声明为final stati ...
- 编写高质量代码:改善Java的151个建议四(基本类型)21-30
该书籍PDF下载地址:http://download.csdn.net/download/muyeju/10001473 基本类型有8个:byte,short,int,char,long,double ...
最新文章
- android程序设计期末试题b,《Android程序设计》期末试题B.doc
- 30 万奖金悬赏 | CSDN 软件开发精英赛即日启动!
- 华硕笔记本如何锁定计算机,我的华硕电脑开机密码被锁定了怎么办
- 多行文本溢出显示省略号(…)
- Mysql 连接查询
- 【动态规划】01背包问题
- 最短路径(信息学奥赛一本通-T1378)
- python异常处理与上下文管理器
- Apache Ranger——Hadoop ACL控制工具
- 我在30岁之前做了三件骄傲的事
- python 下载或者直接读取csv文件
- 【事件驱动】【蓝牙控制车锁或电灯】初步方案
- Android中注册一个 BroadcastReceiver的代码
- 浅谈-国标GB28181协议上下级对接国标编码要求(四)
- 2019年互联网企业软件测试面试题(常考)
- Mac OS X添加网络打印机
- 浩辰CAD机械 2021,正式发布!
- 三维图像处理_三维全景技术是怎样的黑科技
- 鸿蒙系统有没有红外遥控,红外遥控与蓝牙遥控的区别
- 【SPSS】百分位数计算方法探讨:SPSS计算差异