類方法、實例方法和靜態方法
阿新 • • 發佈:2018-12-31
odi message 實例方法 屬性 init 靜態 靜態方法 類屬性 註意
類方法、實例方法和靜態方法,實質是內存空間不一樣,三種方法的創建和調用需要註意,同樣的,類屬性和實例屬性,類對象和實例對象都需要理解,公有屬性可以設置為類屬性,特有屬性可以設置為實例屬性,類方法、實例方法和靜態方法都放在類對象中,實例對象可直接調用。
1 # coding:utf-8 2 3 class Province(object): 4 country = "中國" # 類屬性 5 6 def __init__(self,name): 7 self.name = name 8 9 # 實例方法 10 defprint_message(self): 11 print("實例方法") 12 13 # 類方法 14 @classmethod 15 def print_msg(cls): 16 print("類方法") 17 18 # 靜態方法 19 @staticmethod 20 def print_staticmethod(): 21 print("靜態方法") 22 23 24 p = Province("湖南省") # 創建一個實例對象,首先調用__new__方法開辟內存空間,之後調用__init__方法進行初始化25 p.print_message() 26 p.print_msg() 27 p.print_staticmethod() 28 29 Province.print_msg() 30 Province.print_staticmethod() # 從以上可以看出,實例對象可以調用三種方法,而類對象只能調用類方法和靜態方法 31 32 print(p.__class__.country) 33 print(Province.country) # 從以上可以看出,實例對象和類對象都可以調用類屬性,只是在所區別而已 34 35
類方法、實例方法和靜態方法