一、概述
類中的方法實際上就是執行某種數據處理功能的函數。
與普通函數定義一樣,類中的方法在定義時也需要
使用def 關鍵字。
類中的方法分為兩類:普通方法和內置方法。
• 普通方法需要通過
類的實例對象根據方法名調用;
• 內置方法是在特定情況下由系統自動執行。
普通方法的定義和調用
在定義類的普通方法時,要求
第一個參數需要
對應調用方法時所使用的
實例對象(一般命名為self,但也可以改為其他名字)。
當使用一個實例對象調用類的普通方法時,其語法格式為:
實例對象名.方法名(實參列表)
提示:在通過類的實例對象調用類中的普通方法時,並
不需要傳入self參數的值,self會自動對應調用該方法時所使用的對象。
二、類中普通方法定義及調用示例
1 class Student: #定義Student類 2 name='Unknown' #定義Student類中有一個name屬性 3 def SetName(self, newname): #定義類的普通方法SetName 4 self.name=newname #將self對應實例對象中的name屬性值賦為newname 5 def PrintName(self): #定義類的普通方法PrintName 6 print('姓名:%s'%self.name) #輸出self對應實例對象中的name屬性值 7 if __name__=='__main__': 8 stu1=Student() #定義Student類對象stu1 9 stu2=Student() #定義Student類對象stu2 10 stu1.SetName('李曉明') #通過stu1對象調用SetName方法 11 stu2.SetName('馬紅') #通過stu1對象調用SetName方法 12 stu1.PrintName() #通過stu1對象調用PrintName方法 13 stu2.PrintName() #通過stu2對象調用PrintName方法
提示:類的普通方法
必須通過實例對象調用,而
不能通過類名直接調用。
例如,如果運行 Student.SetName('未知')
Student.PrintName()
系統會分別給出如下報錯信息:TypeError: SetName() missing 1 required positional argument: 'newname'
TypeError: PrintName() missing 1 required positional argument: 'self '
(即都缺少了一個位置參數)這是因為通過實例對象調用時會
自動將該實例對象傳給self,而通過類調用時則不會有這個隱含的參數傳遞。
