class A: # 實例方法: def f1(self): return 1 # 類方法: @classmethod def f2(cls): return 2 # 靜態方法 @staticmethod def f3(): return 3 a = A() a.f1() # => 1 A.f1(a) # => 1 a.f2() # => 2 A.f2() # => 2 a.f3() # => 3 A.f3() # => 3
- 實例方法(也叫成員方法,用於描述對象的固有行為):默認將當前實例對象傳遞為第一個參數
- 類方法(類方法在定義時,方法在上面必須添加@classmethod):默認將當前類傳遞為第一個參數
- 靜態方法(靜態方法在定義時,方法在上面必須添加@staticmethod): 沒有默認的第一個參數
實例方法調用格式:
對象名.方法名()
類方法調用格式:
類名.方法名(參數) 推薦使用方法
對象名.方法名(實參)不推薦使用
注意:
(1)類方法定義在勒種,不屬於某個對象的具體行為,可以被所有對象共同使用的行為
(2)類方法中不允許使用實例變量和實例方法,實例方法中允許使用類變量和類方法,推薦使用類名調用
(3)實例方法中允許使用類變量和類方法
靜態方法調用格式:
類名.方法名(實參) 推薦使用
對象名.方法名(實參)不推薦使用
