我們將集中討論如何連接變量名,以切入到正確和錯誤的地方,我們想要回答的問題是,Pyt hon為什么會推薦蛇形命名?
第一,對于單個(gè)字符或單個(gè)單詞(例如:a,A,PYTHON,Cat),當(dāng)它們作為變量名使用時(shí),大體上可以有全小寫、全大寫和首字母大寫三種情況。當(dāng)這種情況發(fā)生在編程語言中時(shí),它們與英語的表達(dá)習(xí)慣基本相同。
然而,為了使變量名能夠表達(dá)更豐富的意思,編程語言通常需要使用多個(gè)單詞或符號。英語習(xí)慣于用空格把單詞隔開,但是這種用法在編程語言中會帶來一些麻煩,因此程序員創(chuàng)造了另一種方式:
蛇的形態(tài)(snake case)
駱駝的命名(camelcase)
(HNcase)匈牙利名稱
Pascalcase命名法(Pascalcase)
脊髓命名(spin al case)
總的來說,這些命名法都是為了克服詞之間的空隙,從而將不同的詞連成一體,最終達(dá)到創(chuàng)造一個(gè)新的“詞”的效果。
若以受眾數(shù)量和知名度來進(jìn)行排序,無疑前兩位的是駝峰名和蛇名。
下面對其優(yōu)缺點(diǎn)進(jìn)行簡單比較:
可讀:蛇形命名法采用下劃線拉大詞距,更清晰易懂;駝峰命名法變量名簡潔,節(jié)省行寬。
易寫:駝峰命名采用大小寫區(qū)分,不引入附加標(biāo)識;蛇形命名采用統(tǒng)一小寫,輸入比較方便。
明確意義:對于某些縮寫成的專有名詞,如HTTP、RGB、DN S等,一般習(xí)慣于全部使用大寫
由此可以看出,他們各有優(yōu)點(diǎn)和缺點(diǎn),但誰也不能壓倒誰。在某些方面,我個(gè)人比較喜歡蛇形命名法,但當(dāng)需要用駝峰來命名時(shí)(比如寫Java),也可以進(jìn)行無障礙轉(zhuǎn)換。
值得注意的是,Pyt hon還建議使用駝峰命名,這是在類名稱、類型變量、異常exception名稱等情況下。對于包名稱、模塊名稱、方法名稱以及普通變量名稱,建議使用蛇形名稱(lower_case _wit h_un derscores)。
所以為什么Pyt hon會推薦使用蛇形命名法呢?
其中最重要的是歷史原因。“蛇”這個(gè)名字起源于60年代,當(dāng)時(shí)根本就沒有具體的名字。在借鑒了C語言的Pyt hon之后,Pyt hon被命名為“lower_case _wit h_un derscores”,也就是帶有下劃線的小寫字母。
一直到21世紀(jì)初,在Inte l和Ruby社區(qū)中,才有人把它稱為“snake _case”,也就是蛇形。目前,在一些場景中,很多編程語言都推薦使用蛇形名稱,Pyt hon是其中的一個(gè),而且Pyt hon是使用場景最多的語言之一。
第二,Pyt hon之所以特別喜歡下劃線“_”,還有一個(gè)更重要的原因。像_xx,__ xx,xx _,__ xx __等這樣的寫法在任何地方都可以找到,甚至有單獨(dú)一個(gè)下劃線作為變量的特例。因此,看起來下劃線就像字與字之間的聯(lián)系,正是這種傳統(tǒng)習(xí)慣的一部分。
最終,我也看到了一個(gè)解釋:因?yàn)镻yt hon是蟒蛇啊,所以命名為蛇形…