Python3基礎18——類與物件

林堯彬發表於2020-04-04

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

 

轉載於:https://www.cnblogs.com/monica711/p/9857733.html

相關文章