文章图片
阅读本文大概需要 3 分钟 。
”
本文于网络整理 , 版权归原作者所有 , 如来源信息有误或侵犯权益 , 请联系我删除 。
自己写 Python 也有四五年了 , 一直是用自己的“强迫症”在维持自己代码的质量 。 都有去看 Google 的 Python 代码规范 , 对这几年的工作经验 , 做个简单的笔记 , 如果你也在学 Python , 准备要学习 Python , 希望这篇文章对你有用 。
1. 首先建议1、理解 Pythonic 概念—-详见 Python 中的《Python之禅》
建议2、编写 Pythonic 代码
(1)避免不规范代码 , 比如只用大小写区分变量、使用容易混淆的变量名、害怕过长变量名等 。 有时候长的变量名会使代码更加具有可读性 。
(2)深入学习 Python 相关知识 , 比如语言特性、库特性等 , 比如Python演变过程等 。 深入学习一两个业内公认的 Pythonic 的代码库 , 比如Flask等 。
建议3:理解 Python 与 C 的不同之处 , 比如缩进与 { , 单引号双引号 , 三元操作符? ,Switch-Case 语句等 。
建议4:在代码中适当添加注释
建议5:适当添加空行使代码布局更加合理
建议6:编写函数的 4 个原则
(1)函数设计要尽量短小 , 嵌套层次不宜过深
(2)函数声明应该做到合理、简单、易用
(3)函数参数设计应该考虑向下兼容
(4)一个函数只做一件事 , 尽量保证函数粒度的一致性
建议7:将常量集中在一个文件 , 且常量名尽量使用全大写字母
2. 编程惯用法建议8:利用 assert 语句来发现问题 , 但要注意 , 断言 assert 会影响效率
建议9:数据交换值时不推荐使用临时变量 , 而是直接 a b = b a
建议10:充分利用惰性计算(Lazy evaluation)的特性 , 从而避免不必要的计算
建议11:理解枚举替代实现的缺陷(最新版 Python 中已经加入了枚举特性)
建议12:不推荐使用 type 来进行类型检查 , 因为有些时候 type 的结果并不一定可靠 。 如果有需求 , 建议使用 isinstance 函数来代替
建议13:尽量将变量转化为浮点类型后再做除法(Python3 以后不用考虑)
建议14:警惕eval()函数的安全漏洞 , 有点类似于 SQL 注入
建议15:使用 enumerate() 同时获取序列迭代的索引和值
建议16:分清 == 和 is 的适用场景 , 特别是在比较字符串等不可变类型变量时(详见评论)
建议17:尽量使用 Unicode 。 在 Python2 中编码是很让人头痛的一件事 , 但 Python3 就不用过多考虑了
建议18:构建合理的包层次来管理 Module
3. 基础用法建议19:有节制的使用 from…import 语句 , 防止污染命名空间
建议20:优先使用 absolute import 来导入模块(Python3中已经移除了relative import)
建议21:i+=1 不等于 ++i , 在 Python 中 , ++i 前边的加号仅表示正 , 不表示操作
建议22:习惯使用 with 自动关闭资源 , 特别是在文件读写中
建议23:使用 else 子句简化循环(异常处理)
建议24:遵循异常处理的几点基本原则
(1)注意异常的粒度 , try 块中尽量少写代码
(2)谨慎使用单独的 except 语句 , 或 except Exception 语句 , 而是定位到具体异常
(3)注意异常捕获的顺序 , 在合适的层次处理异常
(4)使用更加友好的异常信息 , 遵守异常参数的规范
建议25:避免 finally 中可能发生的陷阱
- 江西|互联网打工人又差点没挺过“寒冬”?有技术的一直过得好着呢
- 显卡|我借别人的ROG枪神6笔记本玩了几天,总结了3大优势2个缺点!
- 宽带|高速公路级网速!江西南昌国家级互联网骨干直联点开通:网间带宽达1600GB/s
- CPU|Pandas 对数值进行分箱操作的4种方法总结对比
- iPhone|为何大多数女生都用iPhone?总结5个优点,你们认同几个?
- 显卡|微服务与领域驱动设计,架构实践总结
- 自媒体|自媒体账号收益低?大周总结了3个小技巧,帮你提高视频收益
- 魅族|“山雨欲来”来总结,对的,说的就是魅族
- 编程|一位资深编程大师的总结:WORKNC编程技巧
- iPhone|iPhone各型号缺点总结,你踩过几个坑?