建议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来导入模块

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

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

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

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

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

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

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

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

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

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

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

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

建议33:慎用变长参数

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

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

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

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

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

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

建议40:深入掌握ConfigParser

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

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

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

建议44:理解模块pickle优劣

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

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

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

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

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

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

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

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

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

建议54:理解build-in objects

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

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

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

建议58:理解MRO与多继承

建议59:理解描述符机制

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

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

建议62:掌握metaclass

建议63:熟悉Python对象协议

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

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

建议66:熟悉Python的生成器

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

建议68:理解GIL的局限性

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

建议70:从PyPI安装包

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

建议72:做paster创建包

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

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

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

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

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

建议78:将包发布到PyPI

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

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

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

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

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

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

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

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

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

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

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

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

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

阅读原文,找你需要的资料

python hello world程序编写_编写高质量代码 改善Python程序的91个建议相关推荐

  1. 荐书与免费送书:《编写高质量代码改善 Python 程序的 91 个建议》

    为了学习如何打理好微信公众号,Python猫我关注了好几个python技术公众号.然后发现这些同行们都在免费送资源,或者抽奖送书耶.于是,我也去参与抽奖,竟然侥幸抽中啦一本<Python数据科学 ...

  2. java 151建议_编写高质量代码改善java程序的151个建议——导航开篇

    前言 系列文章: 下个星期度过这几天的奋战,会抓紧java的进阶学习.听过一句话,大哥说过,你一个月前的代码去看下,惨不忍睹是吧.确实,人和代码一样都在成长,都在变好当中.有时候只是实现功能的编程,长 ...

  3. 编写高质量代码改善C#程序的157个建议——建议148:不重复代码

    建议148:不重复代码 如果发现重复的代码,则意味着我们需要整顿一下,在继续前进. 重复的代码让我们的软件行为不一致.举例来说,如果存在两处相同的加密代码.结果在某一天,我们发现加密代码有个小Bug, ...

  4. 编写高质量代码改善C#程序的157个建议——建议86:Parallel中的异常处理

    建议86:Parallel中的异常处理 建议85阐述了如何处理Task中的异常.由于Task的Start方法是异步启动的,所以我们需要额外的技术来完成异常处理.Parallel相对来说就要简单很多,因 ...

  5. 编写高质量代码改善C#程序的157个建议——建议87:区分WPF和WinForm的线程模型...

    建议87:区分WPF和WinForm的线程模型 WPF和WinForm窗体应用程序都有一个要求,那就是UI元素(如Button.TextBox等)必须由创建它的那个线程进行更新.WinForm在这方面 ...

  6. 编写高质量代码改善C#程序的157个建议——建议127:用形容词组给接口命名

    建议127:用形容词组给接口命名 接口规范的是"Can do",也就是说,它规范的是类型可以具有哪些行为.所以,接口的命名应该是一个形容词,如: IDisposable表示可以被释 ...

  7. 编写高质量代码改善C#程序的157个建议——建议133:用camelCasing命名私有字段和局部变量...

    建议133:用camelCasing命名私有字段和局部变量 私有变量和局部变量只对本类型负责,它们在命名方式也采用和开放的属性及字段不同的方法.camelCasing很适合这类命名. camelCas ...

  8. 编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句

    建议104:用多态代替条件语句 假设要开发一个自动驾驶系统.在设计之初,此自动驾驶系统拥有一个驾驶系统命令的枚举类型: enum DriveCommand{Start,Stop} 当前该枚举存在两个命 ...

  9. 编写高质量代码:改善Java程序的151个建议(第1章:JAVA开发中通用的方法和准则___建议1~5)...

                 The reasonable man adapts himself to the world; The unreasonable one persists in trying ...

  10. 编写高质量代码改善C#程序的157个建议——建议157:从写第一个界面开始,就进行自动化测试...

    建议157:从写第一个界面开始,就进行自动化测试 如果说单元测试是白盒测试,那么自动化测试就是黑盒测试.黑盒测试要求捕捉界面上的控件句柄,并对其进行编码,以达到模拟人工操作的目的.具体的自动化测试请学 ...

最新文章

  1. ajax请求中的reponseType和withCredetials分别是啥?
  2. MIS开发中.net Framework的打印功能
  3. linux shell 特殊变量 符号 $0, $#, $*, $@, $?, $$ 命令行参数
  4. 微信公众平台开发(24) 自定义菜单功能开发
  5. checksum命令 linux_关于Linux操作系统的一些命令是什么?
  6. 矩阵拼接_TEC无缝拼接矩阵切换器(处理器)的技术
  7. C#解析单层html的中的文本,然后拼接起来
  8. 实验三:shell编程(1)
  9. [NOIp2008] 双栈排序 (二分图染色 + 贪心)
  10. 操蛋!新来的同事竟然不会在javaee项目中使用WebSocket~
  11. python反编译学习之字节码详解
  12. 树莓派学习(二):摄像头模块的安装和使用
  13. 【基本办公软件】万彩办公大师教程丨二维条码制作工具
  14. 3-矢量数据的构建和获取坐标集
  15. 使用 wpa_supplicant 连接 WiFi
  16. 解决PyCharm出现“更新 TKK 失败,请检查网络连接”的问题
  17. 本地搭建我的世界服务器(可联机)
  18. sql中的date的使用
  19. linux下的文件搜索功能
  20. 【分享贴】I2C无法访问ATEC508A加密芯片问题

热门文章

  1. 第四十四节,subprocess系统命令模块
  2. Object Pascal 运算符,常量,变量
  3. Windows程序设计_13_伤不起的书
  4. SSH实现新闻管理系统
  5. JSP实现酒店预定系统
  6. Jsp实现BBS论坛交流系统
  7. SSH整合框架+mysql简单的实现
  8. C语言中的sizeof中的数组和指针
  9. SQL Server误区30日谈-Day26-SQL Server中存在真正的“事务嵌套”
  10. Linux入门!Linux无法联网解决办法!CentOS7、VMPlayer、VMWareWorkstation16资源!VMWareWorkstation16序列号!VMware安装Centos7!