Python3基礎18——類與對象
阿新 • • 發佈:2018-10-26
應該 初始 %s 函數 關系 大寫 規範 返回值 Coding
類與對象
class 命名規範:首字母大寫 駝峰命名 見名知意。類的概念 :具有某一類共同屬性和特性的事物,類一般包含 屬性以及方法
1 class Teacher: 2 name="噠噠" 3 age="23" 4 5 def coding(self): # 實例方法(self):意味著這個方法只能實例來調用 6 print(self.name+"會敲代碼") 7 8 def cooking(self):#實例方法 9 print(self.name+"會做蛋炒飯") 10 11 @classmethod #類方法(cls):不可以調用類裏面的屬性值 如果你要參數 請自己傳遞參數 12 def swimming(cls): 13 print("老師還要會遊泳") 14 15 @staticmethod # 靜態方法(普通函數):不可以調用類裏面的屬性值 如果你要參數 請自己傳遞參數 16 def sing(): 17 print("要會唱歌表演給學生看") 18 19 t=Teacher()#實例 隱式的傳遞 20 t.cooking() # 返回“噠噠會做蛋炒飯” 21 Teacher.coding(t)#顯式的傳遞 不建議使用 22 Teacher.cooking() #沒有實例化報錯 missing 1 required positional argument: ‘self‘,正確應該是Teacher().cooking() 23 #類方法:@classmethod 24 Teacher.swimming() # 返回“老師還要會遊泳” 25 t.swimming() # 返回”老師還要會遊泳“ 26 #靜態方法:@staticmethod 27 Teacher.sing() # 返回“要會唱歌表演給學生看“ 28 t.sing() #返回”要會唱歌表演給學生看”
類裏面方法是分為三種,實例方法self 類方法cls 靜態方法(普通方法)
實例和類名都可以直接調用;不同點: 靜態方法和類方法 不可以調用類裏面的屬性值,如果你要參數請自己傳遞參數。什麽時候去定義為靜態和類方法?當你的某個函數與其他的類函數 類屬性 沒有半毛錢關系就可以定義為靜態方法和類方法
1 class Teacher: 2 def __init__(self, age=23): # __init__初始化函數沒有return 返回值,實例方法一般不傳動態參數和關鍵字參數, 3 self.age = age 4 self.height = 180 5 6 def cooking(self): 7 print("%s歲的老師還要會做飯" % self.age) 8 9 @classmethod # 類方法 10 def swimming(cls): 11 print("老師還要會遊泳") 12 13 @staticmethod 14 def sing(name): # 普通函數 15 print("要會唱{0}歌".format(name)) 16 17 Teacher(40).cooking() # “40歲的老師還要會做飯” 18 Teacher().swimming() # ”老師還要會遊泳“ 19 Teacher().sing("好聽的") # ”要會唱好聽的歌“
Python3基礎18——類與對象