拒绝通用词

1、写代码的时候,不管是全局变量还是局部变量,都应该避免使用 ‘list’、‘dict’、‘elements’ 等词作为变量名,它们会使代码变的难以阅读、理解。

2、像 ‘abs’、‘str’、‘eval’ 等内置函数也应该避免使用,防止出现在当前命名空间中被屏蔽的尴尬情况。

3、一些列的前缀和后缀。虽然在编程中非常常见,但事实上应该避免出现在函数和类名称中,比如 ‘object’、‘handle’、‘do’ 等词,这样做的原因是它们的含义模糊,摸棱两可,并且没有向实际名称中添加任何信息。

4、许多包的名称都应该被避免,诸如 ‘tools’、‘utils’、‘core’ 的名称很大可能会变成一大堆不相关的、质量非常差的代码片段,虽然它们在名称上并没有本质的错误,但为了防止问题的出现,还是直接将其作为自己自定义包的命名扼杀在萌芽状态为好。

1 使用专业术语

这个算是 0x00 的延申,拒绝通用词,相反的使用特定领域特定的专业术语,比如下面的代码:

def calculation(datas):for data in datas:yield data ** 2

这部分代码的命名就有些问题,比如函数名 calculation 是计算的意思,计算分很多种,到底计算什么呢?这样很不直观,如果是换成下面这样:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def squares(numbers):for number in numbersyield number ** 2

这种的命名就比第一种清晰明了很多。

2 用 ‘has’ 或 ‘is’ 前缀命名 bool 元素

对于保存布尔值的变量,对其命名的时候将 ‘has’ 或 ‘is’ 作为其前缀,可以使它们在代码中的可读性更强:

is_succeed = True
has_cache = False

3 避免出现上下文中已存在的名称

不要在代码中继续使用已经存在的名称,这会在阅读代码的时候非常令人疑惑,尤其是在出现 bug 进行单步调试的时候,更是令人抓狂!比如像下面这样:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import osdef squares(numbers):for os in numbers:yield os ** 2

上面这个例子中,如果你再使用 os 模块做其它事情,可能会没什么效果。还是那句话,内置函数名和标准库的模块名都应该被避免。

4 集合变量用复数形式命名

如果一个元素是集合变量,那么使用复数形式是一个很好的办法,比如像下面这样:

users = ['Rocky', 'leey']

5 以 key - value 命名字典名

对于字典来说,它保存的是一个映射关系的数据,那我们命名就尽量以映射的双方来命名,也就是 key 含义 - value 含义,比如:一个字典保存的是学生的成绩,那么可以将它命名为 ‘students_scores’:

students_scores = {'Rocky': 100,'leey': 60
}

6 模块和包的命名

模块和包的命名应该体现其表达的内容,它们的名称应该简短,应该使用小写字母并且不带下划线,同样还要始终避免与标准库模块相同的名称。

7 代码风格

Python 官方给出了一种编码规范 PEP 8,当然这个只是个标准而已,并没有强制要求大家都要去遵守,但又好像大多数人都使用了 PEP 8 编码风格,使它已经成为了事实上的代码风格标准。

警告!你的Python代码命名太烂了,命令你熟读本篇迷你命名指南!相关推荐

  1. python代码提示太弱了_10行Python代码制作群聊提醒小助手,再也不怕漏掉消息了...

    前言 大家还记得教会父母玩微信是什么时候吗?父母学会后,我们的生活就发生了「质」的变化,父母也许会 吐槽你的微信头像不好,要你换一个头像. 最近 pk哥 又被母后大人吐槽了,原因是亲戚微信群里某个亲戚 ...

  2. python代码可读性太差了_优化时保持代码可读性

    你的问题是一个非常好的问题,几乎出现在每一段代码中,不管是简单的还是复杂的,任何一个想自称专业人士的程序员都会写这个问题.在 我试着记住,一个新来读我的代码的读者对这个问题有着几乎相同的粗略看法,和我 ...

  3. python代码图片头像_Python玩微信——头像组字篇

    正好今天有位老哥过生日,结合着微信头像和点阵字,搞了个头像拼字的代码,朋友圈九宫格效果如下: 其中,每个字都是16*16的点阵,点阵中每个点可以拆解为4个好友头像图片: 代码中汉字文本可以自定义输入, ...

  4. 贝叶斯网络python代码_贝叶斯网络,看完这篇我终于理解了(附代码)!

    1. 对概率图模型的理解 概率图模型是用图来表示变量概率依赖关系的理论,结合概率论与图论的知识,利用图来表示与模型有关的变量的联合概率分布.由图灵奖获得者Pearl开发出来. 如果用一个词来形容概率图 ...

  5. 打开游戏要运行 19.8 亿次 if 语句?黑客嘲讽 RockStar 游戏代码太烂了

    贾浩楠 发自 凹非寺 量子位 报道 | 公众号 QbitAI 博客原文 https://nee.lv/2021/02/28/How-I-cut-GTA-Online-loading-times-by- ...

  6. python手机编程调试_在Linux下调试Python代码的各种方法

    这是一个我用于调试或分析工具概述,不一定是完整全面,如果你知道更好的工具,请在评论处标记. 日志 是的,的确,不得不强调足够的日志记录对应用程序是多么的重要.您应该记录重要的东西,如果你的记录足够好的 ...

  7. python换脸完整程序_小 200 行 Python 代码做了一个换脸程序

    原标题:小 200 行 Python 代码做了一个换脸程序 简介 在这篇文章中我将介绍如何写一个简短(200行)的 Python 脚本,来自动地将一幅图片的脸替换为另一幅图片的脸. 这个过程分四步: ...

  8. Google出品的Python代码静态类型分析器:Pytype

    Pytype检查并推断Python代码的类型--不需要类型注解.Pytype可以: 使用lint检查纯Python代码,标记常见错误,如属性名拼写错误.不正确的函数调用,等等更多,它甚至可以跨文件. ...

  9. python代码如何做成应用程序_Python的源代码如何转成可以执行的应用程序?

    一.安装pyinstaller 如果你用的是pycarm,直接在setting里面找到pyinstaller的库安装即可. 有一点要注意的是,并非所有的python都支持pyinstaller,目前的 ...

最新文章

  1. 2021年大数据Flink(四十一):​​​​​​​Flink实现订单自动好评
  2. POJ-1322 Chocolate 动态规划
  3. Pytorch学习:Task4 PyTorch激活函数原理和使用
  4. python numpy矩阵的旋转, 转置, 正对角线镜像, 副对角线镜像, 行交换, 列交换操作 rot90()
  5. 关于 AfxSocketInit() 的使用
  6. 一篇文章了解Liquid模版引擎
  7. java接收二进制数据_java-从套接字读取二进制数据
  8. go java性能_服务端I/O性能大比拼:Node、PHP、Java和Go
  9. 如何把一个网页生成一个快捷方式在桌面?_如何打造一个简洁、高效的桌面?
  10. 【MATLAB】xx操作总结【更新中】
  11. hive Beeline plus HiveServer2简单使用
  12. 使用手机访问 Office 文档
  13. 关于三段式状态机第三段是组合逻辑还是时序逻辑的问题?
  14. 微信公众号推文新手排版快速入门
  15. 随笔:《像火箭科学家一样思考:将不可能变成可能》观书有感
  16. 雷神电脑 ST-plus windows10+ubuntu16.04 双硬盘 双系统超详细安装
  17. 《你早该这么玩excel》大表哥伍昊新课开讲——顶你学堂独家
  18. 溢出英语计算机,查看溢出(简述计算机溢出原理)
  19. postgresql配置MIMIC-IV
  20. Hadoop-kms总结

热门文章

  1. metasploit篇-01
  2. Java http方式提交短信到短信网关
  3. 绘制对象iPhone开发基础教程 笔记
  4. [转载] C#面向对象设计模式纵横谈——8. Bridge桥接模式
  5. C++ Vector学习笔记
  6. *** 隧道和加密技术知识要点
  7. 【学习笔记】制造业MES系统功能重点
  8. 【学习笔记】Python - tkinter
  9. 【转】手工导入传输请求(Transport Request)
  10. ora 12541无监听程序