<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 為什么推薦蛇形命名法?

          共 1799字,需瀏覽 4分鐘

           ·

          2022-08-01 22:20


          ↑ 關注 + 星標 ,每天學Python新技能

          后臺回復【大禮包】送你Python自學大禮包


          關于變量的命名,這又是一個容易引發(fā)程序員論戰(zhàn)的話題。如何命名才能更具有可讀性、易寫性與明義性呢?眾說紛紜。

          本期“Python為什么”欄目,我們將聚焦于變量命名中的連接方式,來切入這塊是非之地,想要回答的問題是——Python 為什么要推薦蛇形命名法?

          首先一點,對于單個字符或者單詞(例如:a、A、PYTHON、Cat),當它們被用作變量名時,大致有全小寫、全大寫和首字母大寫這幾種情況。編程語言中出現(xiàn)這些情況時,它們基本上跟英語的表達習慣是相同的。

          但是,編程語言為了令變量名表達出更豐富的含義,通常需要使用多個單詞或符號。英語習慣使用空格來間隔開單詞,然而這種用法在編程語言中會帶來一些麻煩,所以程序員們就創(chuàng)造出了另外的方法:
          • 蛇形命名法(snake case)

          • 駝峰命名法(camel case)

          • 匈牙利命名法(HN case)

          • 帕斯卡命名法(Pascal case)

          • 脊柱命名法(spinal case)

          • 自由命名法(studly caps)

          • 駝峰蛇形命名法

          總體而言,這些命名法都是要克服單詞間的空格,從而把不同單詞串連起來,最終達到創(chuàng)造出一種新的“單詞”的效果。

          我畫了一張思維導圖,大略區(qū)分了這幾種命名法:

          如果按照受眾量與知名程度排名,毫無疑問排前兩位的是駝峰命名法和蛇形命名法。

          我們簡單比較一下它們的優(yōu)缺點:
          • 可讀性:蛇形命名法用下劃線拉大詞距,更清楚易讀;駝峰命名法的變量名緊湊,節(jié)省行寬

          • 易寫性:駝峰命名法以大小寫為區(qū)分,不引入額外的標識符;蛇形命名法統(tǒng)一小寫,輸入相對方便

          • 明義性:對于某些縮寫成的專有名詞,例如HTTP、RGB、DNS等等,一般習慣全用大寫表示,但是如果嚴格遵循這兩種命名法的話,須得只留首字母大寫或者全小寫,這樣對原意都會造成一些“破壞”,有時候甚至讓人感覺到別扭。如果保留全大寫,IDE可能識別不準,反而會出現(xiàn)波浪提示

          由此可見,它們各有優(yōu)缺點,但哪一方都不具有壓倒性。我個人稍微偏好于蛇形命名法,但是在需要用駝峰命名的時候(比如寫 Java 時),也能無障礙切換。

          需要指出的是,Python 也推薦使用駝峰式命名,那是在類名、Type 變量、異常 exception 名這些情況。而在包名、模塊名、方法名和普通變量名等情況,則是推薦用蛇形命名(lower_case_with_underscores)。

          那么,為什么 Python 會推薦用蛇形命名法呢?

          最大的原因是歷史原因。蛇形命名方式起源于 1960 年代,那時它甚至還沒有特定的名稱。Python 從 C 語言中借鑒過來后,給它起名為“lower_case_with_underscores”,即帶下劃線的小寫命名。

          直到 21 世紀初的幾年,在 Intel 和 Ruby 社區(qū)中,才有人開始以“snake_case”即蛇形命名來稱呼它。

          現(xiàn)今有不少編程語言在某些場景下會推薦使用蛇形命名法,而 Python 則是其中最早這么做的之一,并且是使用場景最多的語言之一。

          維基百科上統(tǒng)計了一份清單,可以看出 Python 對它的偏好:

          其次,還有一個比較重要的原因,那就是 Python 對下劃線“_”的獨特偏愛。

          比如類似于 _xx、__xx、xx_、__xx__ 等等的寫法就隨處可見,甚至還有孤零零一個下劃線 _ 作為變量的特殊情況。這樣看來,下劃線作為單詞間的連接,恰恰是這種傳統(tǒng)習慣的一部分。

          最后,我還看到過一種解釋:因為 Python 是蟒蛇啊,理所當然是用蛇形命名……

          對于這三個解釋,你們是如何感想的呢?對于蛇形命名法,大家是喜歡還是不喜歡呢?歡迎留言交流。

          寫在最后:本文屬于“Python為什么”系列(Python貓出品),該系列主要關注 Python 的語法、設計和發(fā)展等話題,以一個個“為什么”式的問題為切入點,試著展現(xiàn) Python 的迷人魅力。部分話題會推出視頻版,請在 B 站收看,觀看地址:https://space.bilibili.com/97566624/video


          1. 沒想到《天龍八部》這段,只有搞IT的才懂

          2. 深度講解Python四大常用繪圖庫的“繪圖原理”

          3. 干貨丨用相似度算法分析和解決字體反爬問題

          4. 只需一個文件,Python 實現(xiàn)迷你 Web 框架!


          瀏覽 56
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  天天日天天干天天射天天操 | 最新最近日本中文字幕不亚洲 | 777午夜| 高清无码在线视频 | 国产美女做爱A片是免费 |