Python命名規范


 

Python 標識符

參見:https://docs.python.org/3/reference/lexical_analysis.html?highlight=identifier#identifiers

在python里,標識符有字母、數字、下划線組成,並且不能使用Python中的保留字。

在python中,所有標識符可以包括英文、數字以及下划線(_),但不能以數字開頭。

python中的標識符是區分大小寫的。

以下划線開頭的標識符是有特殊意義的。以單下划線開頭(_foo)的代表不能直接訪問的類屬性,需通過類提供的接口進行訪問,不能用"from xxx import *"而導入;

以雙下划線開頭的(__foo)代表類的私有成員;以雙下划線開頭和結尾的(__foo__)代表python里特殊方法專用的標識,如__init__()代表類的構造函數。

Python保留字符

下面的列表顯示了在Python中的保留字。這些保留字不能用作常數或變數,或任何其他標識符名稱。

首先在命令行先看一下Python有哪些保留字。

 

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類型false

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.全局變量名

全局變量名
我們假設這些變量都是在模塊內部使用的。命名所遵循的規則跟函數的命名規則基本相同。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM