標籤:需要 ide 靜態方法 branch color 圖片 ssm code 對比
python3 物件導向編程2
類方法:
@classmethod
作用:1,類方法是只能訪問類變數的方法;
2,類方法需要使用@classmethod 裝飾器定義;
3,類方法的第一個參數是類的執行個體, 約定寫成cls
說明:1, 類執行個體和對象執行個體都可以調用類方法;
2, 類方法不能方法執行個體變數
類方法和執行個體方法對比:
1,類方法能夠訪問類變數,不能訪問執行個體變數;
執行個體方法能夠訪問類變數,也能訪問執行個體變數
2,類方法可以用執行個體來調用,也可以用類來調用;
執行個體方法在調用時必須傳入執行個體;
1 class Bank: 2 moneys = 10000000 #一千萬 3 @classmethod 4 def total_money(cls): 5 print("某銀行總行資金數:", cls.moneys) 6 7 def __init__(self, b): 8 self.branch = b 9 self.moneys = 500000010 self.__class__.moneys -= 500000011 12 13 Bank.total_money() #某銀行總行資金數: 1000000014 b1 = Bank("xxx地址支行")15 b1.total_money() #某銀行總行資金數: 5000000View Code
靜態方法
@staticmethod
作用:1, 靜態方法是普通的函數;
2,靜態方法定義在類的內部,只能憑藉該類和執行個體調用
3,靜態方法需要使用@staticmethod 裝飾器定義
4,靜態方法與普通函數定義相同,不需要傳入self執行個體參數和cls類參數;
說明:1, 類執行個體和對象執行個體都可以調用靜態方法;
2, 靜態方法不能方法類變數和執行個體變數;
Python之路,第十八篇:Python入門與基礎18