6. 增加類別方法
類別方法(class method)是寫在類別中的函式,並且函式指令的前方加上「@classmethod」裝飾它。類別方法有一個cls參數表示它所存在的類別,因此類別方法可以取存類別變數。呼叫類別方法時,使用「類別名稱.類別方法名稱」的寫法。
(1) Employee的類別方法
以下是一個例子:
第5及12行各宣告一個類別方法。 第6~10行是一個計算一般稅金的類別方法,它用了定義在類別中的highRate及lowRate的類別變數。 第13~17行是一個計算兼職稅金的類別方法,它也用了定義在類別中的highRate及lowRate的類別變數。以下是一個使用它們的例子:
呼叫類別方法:
執行結果:
14,950元 12,350元
說明:
問題:
撰寫一個「成績」(Score)的類別,其中有2個類別變數「wchi」及「weng」,其值是分別是1.2及1.5,分別表示為國文及英文的加權比重。再寫2個類別方法,分別是「bachelorRank(chi, eng)」及「undergraduateRank(chi, eng)」分別是「大學級分」及「研究所級分」,它們的傳入值是國文原始分數及英文原始分數。 加權總分=國文加權比重*國文原始分數 + 英文加權比重*英文原始分數 計算級分的方法是,「大學的加權總分>150分是A級分,否則是B級分」及「研究所的加權總分>200分是A級分,否則是B級分」。請測試以下的資料: 大學,國文70,英文50 大學,國文60,英文80 研究所,國文70,英文50 研究所,國文60,英文80