当前位置: 首页 > 科技观察

为什么Python推荐蛇形命名法?

时间:2023-03-12 12:17:52 科技观察

关于变量的命名,这又是一个容易引起程序员争论的话题。命名如何才能更易读、易写、清晰?众说纷纭。本期《WhyPython》专栏,我们就着重从变量命名中的连接方式切入这个是非之处。我们要回答的问题是——为什么Python推荐蛇命名法?首先,对于单个字符或单词(例如:a、A、PYTHON、Cat),作为变量名时,大致有全小写、全大写、首字母大写的情况。这些情况在编程语言中出现时,与英语中的表达习惯基本一致。然而,编程语言往往需要使用多个单词或符号,以便在变量名中表达更丰富的含义。英语习惯用空格来分隔单词。但是,这种用法在编程语言中会造成一些麻烦,所以程序员们创造了另一种方法:snakecase(蛇案例)camelcase(驼峰案例)Hungariannomenclature(HNcase)Pascalnomenclature(帕斯卡案例)Spinalcase(studlycaps)Hump蛇形命名法总的来说,这些命名法是为了克服词与词之间的空格,使不同的词串联起来,最终达到造新“词”的效果。我画了一张思维导图,大致区分了这几种命名法:如果按照受众规模和受欢迎程度来排序,毫无疑问,前两位是驼峰命名法和蛇形命名法。下面简单对比一下它们的优缺点:可读性:蛇形命名方式使用下划线拉宽字间距,更加清晰易读;驼峰命名法变量名紧凑,节省行宽书写方便:驼峰命名法使用大小写区分,没有引入额外的标识符;蛇形命名法统一小写,输入相对方便清晰:对于一些缩写的专有名词,如HTTP、RGB、DNS等,一般习惯上全部使用大写字母,但是如果这两个命名法是严格遵守,只有首字母必须大写或全部小写,这会对原意造成一定的“破坏”,有时甚至会让人觉得别扭。如果全部保留大写,IDE可能无法准确识别,反而会出现波浪提示。可以看出,它们各有优缺点,但都不是压倒性的。我个人比较喜欢蛇形命名方式,但是当你需要使用驼峰式命名时(比如写Java的时候),也可以无障碍切换。需要指出的是,Python也推荐使用驼峰命名,即类名、Type变量、异常名的大小写。在包名、模块名、方法名和普通变量名的情况下,建议使用蛇形命名(lower_case_with_underscores)。那么,为什么Python推荐蛇形命名法呢?最大的原因是历史原因。蛇纹石命名法起源于1960年代,甚至还没有一个特定的名称。Python从C语言借用后,命名为“lower_case_with_underscores”,即带下划线的小写名称。直到2000年代初,Intel和Ruby社区中有人开始将其称为“snake_case”,蛇形名称。现在很多编程语言都推荐在某些场景下使用蛇形命名法,而Python是最早这样做的,也是使用场景最多的语言之一。在维基百科上整理了一个列表,可以看出Python对它有偏爱:其次,还有一个重要的原因,就是Python对下划线“_”的独特偏爱。比如类似_xx、__xx、xx_、__xx__等的写法比比皆是,甚至还有下划线_作为变量的特殊情况。这样,下划线作为词与词之间的联系,恰恰是这种传统习惯的一部分。最后还看到一个解释:因为Python是蟒蛇,当然是以蛇命名的。。。