標識符:Identifiers
定義:
identifier ::= (letter|"_") (letter | digit | "_")* letter ::= lowercase | uppercase lowercase ::= "a"..."z" uppercase ::= "A"..."Z" digit ::= "0"..."9"
翻譯成中文就是:
標識符必須以字母(大小寫均可)或者"_"開頭,接下來可以重復0到多次(字母|數字|"_")
特點:
1.沒有長度限制
2.區分大小寫
用處:
用於作為變量,函數名,類名,方法名等
關鍵字:keywords
定義:
關鍵字其實就是python內部已經使用了的標識符,如果使用這些關鍵字,將會覆蓋python內置的功能,可能會導致無法預知的錯誤。
包括:
and
|
del |
from | not | while |
as | elif | global | or | with |
assert | else | if | pass | yield |
break | except | import | ||
class | exec | in | raise | |
continue | finally | is | return | |
def | for | lambda | try |
以上關鍵字必須准確拼寫,因為python是區分大小寫的。
版本差異:
版本2.4 中的變化:None成為一個常量並且被編譯器識別為內建對象None的名字。盡管不是關鍵字,你也不可以給它賦值一個不同的對象。
版本2.5 中的變化:使用as和with作為標識符會引發警告。要使用它們作為關鍵字,需啟用with_statement這個未來特性。
版本2.6 中的變化:as和with成為真正的關鍵字。
保留的標識符(或者說是有特殊含義的標識符):
_*
不會被
from module import * 導入,也就是說模塊中以"_"開頭的函數或者類將不會被 * 號導入,有點私有屬性的感覺,當然顯式導入應該是沒有問題的。
在交互式解釋器中(或者說是交互模式中)"_"存儲的是上一次計算的結果。
__*__
多為魔法方法,在不清楚自己做了什么的時候不應該隨便定義魔法方法。
__*
類的私有變量,或者說是對象的私有屬性,它改變了屬性訪問的入口,防止了在繼承過程中的屬性沖突。但進行私有化時,例如類里面的一個變量 __name ,其訪問入口在類里面還是 __name,但在類的外部的時候,將變成
對象._類名__name 。這里的對象可以是類對象也可以是類的實例,當是類里面的變量時,兩個對象都能夠訪問到這個屬性;當這是實例的屬性時,例如self.__name,將只有實例對象能進行訪問。