虽然Camel是一个不错的选择
关于变量的命名,这是另一个容易引起程序员争论的话题。 命名如何更具可读性,易写性和清晰性? 有很多意见。
在" Why Python"系列的这个故事中,我们将重点介绍变量命名中的连接方法:
我们要回答的问题是-为什么Python建议使用蛇形命名法?
首先,对于单个字符或单词(例如A,PYTHON,BOY),当将它们用作变量名时,大致所有小写字母,全部大写字母和首字母大写字母。
但是,编程语言通常需要使用多个单词或符号来表示变量名中更丰富的含义。 英语习惯于使用空格分隔单词,但是这种用法会给编程语言带来麻烦,因此程序员创建了其他方法:
· Sanke Case 蛇形命名法 (下划线连接)
· Camel Case 驼峰命名法 (第一个单词后的单词首字母大写)
· 匈牙利命名法 (包含类型)
· 帕斯卡命名 (首字母大写)
· 脊柱命名法 (中划线连接)
· STUDLY CAPS(随机大写)
通常,这些术语是为了克服单词之间的空间并将它们连接起来,最终达到创建新"单词"的效果。
如果按照受众数量和受欢迎程度进行排名,毫无疑问,排名前两位的名称是骆驼命名法和蛇壳命名法。
我们可以简单地比较它们的优缺点:
可读性:
· 蛇形命名法使用下划线加宽单词距离,更清晰易读
· 驼峰命名法的变量名紧凑,节省了线宽
易于写作
· 驼峰命名法大小写用大写和小写来区分,不引入其他标识符。
· 蛇形命名法统一为小写,输入相对方便
明晰:
· 对于某些缩写的专有名词(例如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的偏好:
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)