類與物件
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("好聽的") # ”要會唱好聽的歌“