您的“關注”和“點贊”,是信任,是認可,是支持,是動力......
如意見相佐,可留言。
本人必將竭盡全力試圖做到準確和全面,終其一生進行修改補充更新。
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_age
、user
、book_num
等。 - 常量名:全部使用大寫字母,多個字母之間可用下劃線
_
分隔,例如DEF_NUMBER
、AGE
、YEAR
等。 - 類名:單詞首字母大寫,例如
User
、Book
、Blog
等。 - 包名:應儘量簡短,全部使用小寫字母,多個字母間可用
.
分隔,例如com.baidu
、com.python
、net.csdn.editor
等。 - 模塊名:應儘量簡短,全部使用小寫字母,多個字母間可用下劃線
_
分隔,例如user_login
、game_login
、book_name
等。5 保留的標識符類
Python 中除了關鍵字之外,還有一些標識符類具有特殊的含義。這些標識符類的命名模式是以下劃線字符開頭和結尾,如下所示:
-
_*
以單下劃線開頭的標識符。表示不能直接訪問的類屬性,它不會被
from module import *
導入。特殊標識符
_
在交互式解釋器中被用來存放最近一次求值結果;它保存在builtins
模塊中。當不處於交互模式時,_
無特殊含義也沒有預定義。_
作爲名稱通常用於連接國際化文本。 -
__*__
以雙下劃線開頭和結尾的標識符。系統定義的名稱,是專用標識符。這些名稱由解釋器及其實現 (包括標準庫) 所定義。未來的 Python 版本中還將定義更多此類名稱。
任何不遵循文檔指定方式使用
__*__
名稱的行爲都可能導致無警告的出錯。 -
__*
以雙下劃線開頭的標識符。類的私有名稱。這種名稱在類定義中使用時,會以一種混合形式重寫以避免在基類及派生類的 "私有" 屬性之間出現名稱衝突。