1. 程式人生 > >Python3基礎18——類與對象

Python3基礎18——類與對象

應該 初始 %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——類與對象