參見:https://docs.python.org/3/reference/lexical_analysis.html?highlight=identifier#identifiershtml
在python裏,標識符有字母、數字、下劃線組成,而且不能使用Python中的保留字。java
在python中,全部標識符能夠包括英文、數字以及下劃線(_),但不能以數字開頭。python
python中的標識符是區分大小寫的。dom
如下劃線開頭的標識符是有特殊意義的。以單下劃線開頭(_foo)的表明不能直接訪問的類屬性,需經過類提供的接口進行訪問,不能用"from xxx import *"而導入;ide
以雙下劃線開頭的(__foo)表明類的私有成員;以雙下劃線開頭和結尾的(__foo__)表明python裏特殊方法專用的標識,如__init__()表明類的構造函數。函數
下面的列表顯示了在Python中的保留字。這些保留字不能用做常數或變數,或任何其餘標識符名稱。this
首先在命令行先看一下Python有哪些保留字。spa
1 import keyword 2 keyword.kwlist
輸出:['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']命令行
保留字 | 說明 | 保留字 | 說明 |
False | The false value of the bool type。內置常量 bool類型falsecode |
global |
定義全局變量 |
None | 內置常量表示沒有 | if | 條件語句,與else、elif結合使用 |
True | The true value of the bool type。內置常量bool類型true | import | 用於導入模塊,與from結合使用 |
and | 用於表達式運算,邏輯與操做 | in | 判斷變量是否在序列中 |
as | 用於類型轉換 | is | 判斷變量是否爲某個類的實例 |
assert | 斷言,用於判斷變量或者條件表達式的值是否爲真 | lambda | 定義匿名行數 |
break | 中斷循環語句的執行 | nonlocal | 用來在函數或其餘做用域中使用外層(非全局)變量 |
class | 用於定義類 | not | 表達式運算,邏輯非操做 |
continue | 結束本次循環繼續下一次循環 | or | 表達式運算,邏輯或操做 |
def | 定義函數或方法 | pass | 空的類、方法或者函數的佔位符 |
elif | 條件控制語句,與if、else結合使用 | raise | 異常拋操做 |
esle | 條件控制語句,與if、elif結合使用 | return | 從函數返回計算結果 |
except | except包含異常捕獲後的操做代碼塊與try、finally結合使用 | try | 包含可能會出現的代碼塊,與except、finally結合使用 |
finally | 用於異常語句,異常捕獲後,始終要執行finally包含的代碼塊,與try、except結合使用 | while | while循環 |
for | for循環語句 | with | 簡化Python的語句 |
from | 用於導入模塊,與import結合使用 | yield | 從函數依次返回值 |
參見:https://www.python.org/dev/peps/pep-0008/
儘可能避免使用難區分的字母"l"、"o"數字"1"、"0"。
1.變量名、包名、模塊名
變量名一般由字母、數字、下劃線組成,以字母或下劃線開頭,包名、模塊名一般採用簡短的小寫字母,提升可讀性模塊名中也能夠包含下劃線,包命中不推薦使用下劃線。
#Filename:rulemodle.py _rule = "rule information"
第一行是程序註釋行,用於聲明模塊的名稱,模塊名用小寫字母,也能夠不指定模塊名稱,以.py後綴的文件就是一個模塊,文件名就是模塊名。
2.類名、對象名
類名首字母大寫,其餘字母採用小寫。對象名用小寫字母。內部使用的類在類名前加單下劃線。
類的屬性和方法名以對象做爲前綴,對象經過操做符"."訪問屬性和方法。類的私有變量和私有方法以兩個下劃線做爲前綴。
class Student: #類名,首字母大寫 __name = '' #私有變量,以__開頭 def __init__(self,name): #self至關於java中的this self.__name = name def getName(self): return self.__name if __name__ =="__main__": student = Student("zhaowei") #對象名,小寫字母 print(student.getName())
3.函數名
函數名一般採用小寫,必要時使用下劃線區分單詞以提升可讀性。
mixedCase(首字母小寫,後面以單詞首字母大寫分割單詞)只適用於保持風格以及向下兼容。
導入的函數以模塊名做爲前綴。
import random #導入模塊 def compareNum(num1,num2): #定義函數 if(num1 > num2): print("num1 : %d > num2 : %d"%(num1,num2)) elif(num1 == num2): print("num1 : %d == num2 : %d"%(num1,num2)) else: print("num1 : %d < num2 : %d"%(num1,num2)) num1 = random.randrange(1,9) #調用模塊的函數 num2 = random.randrange(1,9) compareNum(num1,num2)
4.異常名
由於異常也是類,因此類的命名習慣在這裏也適用。不一樣的是,若是異常其實是個錯誤,則須要在異常名字的後面使用Error後綴
5.全局變量名
全局變量名咱們假設這些變量都是在模塊內部使用的。命名所遵循的規則跟函數的命名規則基本相同。