关于变量的命名,这又是一个容易引起程序员论战的话题。如何命名才能更具备可读性、易写性与明义性呢?众说纷纭。程序员
本期“Python为何”栏目,咱们将聚焦于变量命名中的链接方式,来切入这块是非之地,想要回答的问题是——Python 为何要推荐蛇形命名法?编程
首先一点,对于单个字符或者单词 (例如:a、A、PYTHON、Cat),当它们被用做变量名时,大体有全小写、全大写和首字母大写这几种状况。编程语言中出现这些状况时,它们基本上跟英语的表达习惯是相同的。编程语言
可是,编程语言为了令变量名表达出更丰富的含义,一般须要使用多个单词或符号。 英语习惯使用空格来间隔开单词,然而这种用法在编程语言中会带来一些麻烦,因此程序员们就创造出了另外的方法:ide
整体而言,这些命名法都是要克服单词间的空格,从而把不一样单词串连起来, 最终达到创造出一种新的“单词”的效果。spa
我画了一张思惟导图,大略区分了这几种命名法:翻译
若是按照受众量与知名程度排名,毫无疑问排前两位的是驼峰命名法和蛇形命名法。设计
咱们能够简单比较一下它们的优缺点:cdn
因而可知,它们各有优缺点,但哪一方都不具备压倒性。我我的稍微偏好于蛇形命名法,可是在须要用驼峰命名的时候(好比写 Java 时),也能无障碍切换。视频
须要指出的是,Python 也推荐使用驼峰式命名,那是在类名、Type 变量、异常 exception 名这些状况。而在包名、模块名、方法名和普通变量名 等状况,则是推荐用蛇形命名(lower_case_with_underscores)。blog
那么,为何 Python 会推荐用蛇形命名法呢?
最大的缘由是历史缘由。 蛇形命名方式起源于 1960 年代,那时它甚至尚未特定的名称。Python 从 C 语言中借鉴过来后,给它起名为“lower_case_with_underscores”,即带下划线的小写命名。
直到 21 世纪初的几年,在 Intel 和 Ruby 社区中,才有人开始以“snake_case”即蛇形命名来称呼它。
现今有很多编程语言在某些场景下会推荐使用蛇形命名法,而 Python 则是其中最先这么作的之一,而且是使用场景最多的语言之一。
维基百科上统计了一份清单,能够看出 Python 对它的偏好:
其次,还有一个比较重要的缘由,那就是 Python 对下划线“_”的独特偏心。
好比相似于 _xx、__xx、xx_、__xx__ 等等的写法就随处可见,甚至还有孤零零一个下划线 _ 做为变量的特殊状况。这样看来,下划线做为单词间的链接,偏偏是这种传统习惯的一部分。
最后,我还看到过一种解释:由于 Python 是蟒蛇啊,理所固然是用蛇形命名……
对于这三个解释,大家是如何感想的呢?对于蛇形命名法,你们是喜欢仍是不喜欢呢?欢迎留言交流。
写在最后:本文属于“Python为何”系列(Python猫出品),该系列主要关注 Python 的语法、设计和发展等话题,以一个个“为何”式的问题为切入点,试着展示 Python 的迷人魅力。部分话题会推出视频版,请在 B 站收看,观看地址:视频地址
公众号【Python猫】, 本号连载优质的系列文章,有Python为何系列、喵星哲学猫系列、Python进阶系列、好书推荐系列、技术写做、优质英文推荐与翻译等等,欢迎关注哦。