Python 標識符詳解[學習 Python 必備基礎知識][看此一篇就夠了]

您的“關注”和“點贊”,是信任,是認可,是支持,是動力......

如意見相佐,可留言。
本人必將竭盡全力試圖做到準確和全面,終其一生進行修改補充更新。

1 Python 標識符概述(正式介紹)

標識符 (或者叫做 名稱) 由以下詞法定義進行描述。

  • Python 中的標識符語法是基於 Unicode 標準附件 UAX-31,並加入了下文所定義的細化與修改;更多細節還可參見 PEP 3131 。
    在 ASCII 範圍內 (U+0001..U+007F),可用於標識符的字符與 Python 2.x 一致: 大寫和小寫字母 A 至 Z,下劃線 _ 以及數字 0 至 9,但不可以數字打頭。

  • Python 3.0 引入了 ASCII 範圍以外的額外字符 (見 PEP 3131)。這些字符的分類使用包含於 unicodedata 模塊中的 Unicode 字符數據庫版本。Unicode 4.1 中的所有可用標識符字符列表參見以下非規範 HTML 文件鏈接 https://www.dcl.hpi.uni-potsdam.de/home/loewis/table-3131.html

  • 標識符的長度沒有限制。對大小寫敏感。
  • 所有標識符在解析時會被轉換爲規範形式 NFKC;標識符的比較都是基於 NFKC。

2 Python 標識符的簡單理解(非正式介紹)

標識符就是一個名字,它的主要作用就是作爲變量、函數、類、模塊以及其他對象的名稱。

就好像我們人一樣,需要起個名字,便於稱呼、指代。

在給標識符命名的時候還要儘量做到“見名知其意”,例如 book_name我們看到之後,就能大概猜出是“書的名字”相關的內容;user_name我們看到之後,能大概猜出是“用戶名字”相關的內容等等。

3 Python 標識符命名規則

Python 標識符的命名不是亂來的,而是要遵守一定的命令規則,如下所示:

  • 標識符是由字母(A--Z 和 a--z)、下劃線和數字組成。如果標識符中出現除了這 3 類字符之外的其他字符,就肯定是不合法標識符。
  • 標識符的第一個字符不能是數字。
  • 標識符不能和 Python 關鍵字相同。
  • 標識符中的字母是嚴格區分大小寫的。
  • 以下劃線開頭的標識符有特殊含義,除非特定場景需要,應避免使用以下劃線開頭的標識符。具體內容請參見本文第 5 小節 保留的標識符類。

  • 標識符可以是漢字。但我們應儘量避免使用漢字作爲標識符,這會避免遇到很多沒必要的錯誤。

實例如下所示,

(1)合法的標識符:

name
User
user_name
user_age
BOOK
book_name
book13

(2)不合法的標識符:

user&book  # & 不屬於標識符的組成字符,即包含非法字符
4name  # 不能以數字開頭
and  # and是關鍵字,不能作爲標識符

(3)標識符中的字母是嚴格區分大小寫的:
也就是說,兩個同樣的單詞,如果大小格式不一樣,就代表不同的標識符。如下所示:

name = '碼農阿杰'
Name = '碼農阿杰'
NAME = '碼農阿杰'

以上三個變量“name”代表不同的標識符,互不影響,相互是獨立的。你明白了嗎?
(4)標識符可以是漢字

# 以漢字作爲變量名(標識符)
微信公衆號 = '碼農阿杰'
print(微信公衆號)

運行結果:

碼農阿杰

標識符可以是漢字。但我們應儘量避免使用漢字作爲標識符,這會避免遇到很多沒必要的錯誤。

4 Python 標識符的其他命名規則(參考)

標識符的命名,除了要遵守上文所述的幾條規則外,在不同場景中其命名也是有一定規則的,如下所示:

  • 函數名、類中屬性名、類中的方法名:全部使用小寫字母,多個字母之間可用下劃線_分隔,例如user_ageuserbook_num等。
  • 常量名:全部使用大寫字母,多個字母之間可用下劃線_分隔,例如DEF_NUMBERAGEYEAR等。
  • 類名:單詞首字母大寫,例如UserBookBlog等。
  • 包名:應儘量簡短,全部使用小寫字母,多個字母間可用.分隔,例如com.baiducom.pythonnet.csdn.editor等。
  • 模塊名:應儘量簡短,全部使用小寫字母,多個字母間可用下劃線_分隔,例如 user_logingame_loginbook_name等。

    5 保留的標識符類

    Python 中除了關鍵字之外,還有一些標識符類具有特殊的含義。這些標識符類的命名模式是以下劃線字符開頭和結尾,如下所示:

  • _*
    以單下劃線開頭的標識符。

    表示不能直接訪問的類屬性,它不會被 from module import * 導入。

    特殊標識符_在交互式解釋器中被用來存放最近一次求值結果;它保存在 builtins 模塊中。當不處於交互模式時,_ 無特殊含義也沒有預定義。

    _ 作爲名稱通常用於連接國際化文本。

  • __*__
    以雙下劃線開頭和結尾的標識符。

    系統定義的名稱,是專用標識符。這些名稱由解釋器及其實現 (包括標準庫) 所定義。未來的 Python 版本中還將定義更多此類名稱。

    任何不遵循文檔指定方式使用 __*__名稱的行爲都可能導致無警告的出錯。

  • __*
    以雙下劃線開頭的標識符。

    類的私有名稱。這種名稱在類定義中使用時,會以一種混合形式重寫以避免在基類及派生類的 "私有" 屬性之間出現名稱衝突。

6 文章其他地址

6.1 微信公衆號:碼農阿杰

6.2 CSDN 博客

6.3 博客園

7 參考資料

7.1 Python 3.8.2 documentation

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章