关于变量的命名,这是另一个随意马虎引动身序员辩论的话题。 命名如何更具可读性,易写性和清晰性? 有很多见地。
在" Why Python"系列的这个故事中,我们将重点先容变量命名中的连接方法:

我们要回答的问题是-为什么Python建议利用蛇形命名法?
首先,对付单个字符或单词(例如A,PYTHON,BOY),当将它们用作变量名时,大致所有小写字母,全部大写字母和首字母大写字母。
但是,编程措辞常日须要利用多个单词或符号来表示变量名中更丰富的含义。 英语习气于利用空格分隔单词,但是这种用法会给编程措辞带来麻烦,因此程序员创建了其他方法:
· Sanke Case 蛇形命名法 (下划线连接)
· Camel Case 驼峰命名法 (第一个单词后的单词首字母大写)
· 匈牙利命名法 (包含类型)
· 帕斯卡命名 (首字母大写)
· 脊柱命名法 (中划线连接)
· STUDLY CAPS(随机大写)
> Difference between cases, Visual made using Canva
常日,这些术语是为了战胜单词之间的空间并将它们连接起来,终极达到创建新"单词"的效果。
如果按照受众数量和受欢迎程度进行排名,毫无疑问,排名前两位的名称是骆驼命名法和蛇壳命名法。
我们可以大略地比较它们的优缺陷:
可读性:
· 蛇形命名法利用下划线加宽单词间隔,更清晰易读
· 驼峰命名法的变量名紧凑,节省了线宽
易于写作
· 驼峰命名法大小写用大写和小写来区分,不引入其他标识符。
· 蛇形命名法统一为小写,输入相对方便
明晰:
· 对付某些缩写的专有名词(例如HTTP,RGB,DNS等),常日利用所有大写字母,但是如果严格遵照这两个命名法,则仅利用大写字母的首字母或全部利用小写字母,这将导致 "毁坏"了最初的意图,有时乃至使人感到尴尬。 如果保留所有大写字母,则IDE可能无法精确识别,但会涌现颠簸提示
这表明它们各有优缺陷,但是双方都无法压倒统统。 我更喜好利用蛇格命名法,但是当您须要利用驼峰式命名(例如编写Java时)时,也可以无障碍地切换。
该当把稳的是,Python还建议利用驼峰式命名,在类名,类型变量和非常名的情形下。
对付包名,模块名,方法名和公共变量名,建议利用蛇形命名(lower_case_with_underscores)。
那么,为什么Python建议利用蛇形命名法呢?
1.最大的缘故原由是历史。蛇形命名方法起源于1960年代,当时乃至没有特定的名称。 从C措辞中借用之后,Python将其命名为" lower_case_with_underscores",即带下划线的小写名称。
直到21世纪初,在Intel和Ruby社区中,人们才开始将其称为" snake_case",这是一个类似于蛇的名字。
当今许多编程措辞都建议在某些情形下利用类似蛇的命名法,而Python是最早利用蛇形命名法的措辞之一,也是最常用的措辞之一。
维基百科上的统计信息列表显示了Python的偏好:
> Source: Wikipedia
2. Python对下划线" _"的独特偏好。
例如,到处都有类似于_yy,__yy,yy_,__yy__等的笔墨,乃至在分外情形下,单个下划线_也作为变量。
末了,我也看到了一个阐明:由于Python是python,以是它当然因此蛇命名的… :)
您对这三种阐明有何意见? 你喜好蛇壳命名法吗? 在评论中让我知道
是的,我们做到了末了。 希望您喜好它,并对Python为什么比其他人更喜好蛇形外壳有一个基本的理解。
(本文翻译自Pawan Jain的文章《Why Does Python Recommend the Snake-Case Nomenclature?》,参考:https://towardsdatascience.com/why-does-python-recommend-the-snake-case-nomenclature-bf908777c2dc)