5. 增加靜態方法
靜態方法(static method)是寫在類別中的函式,並且函式指令的前方加上「@staticmethod」裝飾它。靜態方法沒有self傳入參數,因為它不屬於各個實體之內,而是存在類別之中的函式。呼叫靜態方法時,使用「類別名稱.靜態方法名稱」的寫法。
(1) Employee的靜態方法
以下是一個例子:
第2行用@staticmethod裝飾其後的方法成為一個靜態方法。 第3行的tax(income)是一個靜態方法。 第4~7行是靜態方法的內容,用來計算員工的稅金。 使用靜態方法並不需要先建立實體變數,可以直接用「Employee.tax()」呼叫它。
呼叫靜態方法:
執行結果:
14,950元
說明:
問題:
撰寫一個「員工」(Employee)的類別,其中有一個靜態方法,名稱是「overtimes」,用來計算員工的加班費。此方法傳入「職等」(rank)及「加班時數」(hours)共2個參數,而加班費的計算方式如下:如果職等是A,沒有加班費;如果職等是B、C、D、F其中之一,每小時加班費265元;其他職等的每小時加班費是220元。加班費=每小時加班費*加班時數。請測試以下的資料: 職等:A,加班時數:10 職等:B,加班時數:11 職等:C,加班時數:12 職等:D,加班時數:13 職等:E,加班時數:14 職等:F,加班時數:15