在創(chuàng)建類時(shí),我們可以手動(dòng)添加一個(gè)__init__()方法,該方法是一個(gè)特殊的類實(shí)例方法,稱為構(gòu)造方法(或構(gòu)造函數(shù))。
構(gòu)造方法用于創(chuàng)建對(duì)象時(shí)使用,每當(dāng)創(chuàng)建一個(gè)類的實(shí)例對(duì)象時(shí),Python解釋器都會(huì)自動(dòng)調(diào)用它。Python類中,手動(dòng)添加構(gòu)造方法的語法格式如下:
def__init__(self,...):
代碼塊
注意,此方法的方法名中,開頭和結(jié)尾各有2個(gè)下劃線,且中間不能有空格。Python中很多這種以雙下劃線開頭、雙下劃線結(jié)尾的方法,都具有特殊的意義,教程后面還會(huì)詳細(xì)介紹這些特殊的方法。
另外,__init__()方法可以包含多個(gè)參數(shù),但必須包含一個(gè)名為self的參數(shù),且必須作為第一個(gè)參數(shù)。也就是說,類的構(gòu)造方法最少也要有一個(gè)self參數(shù)。
例如,仍以Person類為例,添加構(gòu)造方法的代碼如下所示:
classPerson:
'''這是一個(gè)學(xué)習(xí)Python定義的一個(gè)Person類'''
def__init__(self):
print("調(diào)用構(gòu)造方法")
在以上代碼的基礎(chǔ)上,添加如下代碼:
zhangsan=Person()
這行代碼的含義是創(chuàng)建一個(gè)名為zhangsan的Person類對(duì)象。運(yùn)行代碼可看到如下結(jié)果:顯然,在創(chuàng)建zhangsan這個(gè)對(duì)象時(shí),隱式調(diào)用了類的構(gòu)造方法。
不僅如此,在__init__()構(gòu)造方法中,除了self參數(shù)外,還可以自定義一些參數(shù),參數(shù)之間使用逗號(hào)“,”進(jìn)行分割。例如,下面的代碼在創(chuàng)建__init__()方法時(shí),額外指定了2參數(shù),分別是name和age:
classPerson:
'''這是一個(gè)學(xué)習(xí)Python定義的一個(gè)Person類'''
def__init__(self,name,age):
print("這個(gè)人的名字是:",name,"年齡為:",age)
#創(chuàng)建zhangsan對(duì)象,并傳遞參數(shù)給構(gòu)造函數(shù)
zhangsan=Person("張三",20)
運(yùn)行以上代碼,執(zhí)行結(jié)果為:
這個(gè)人的名字是:張三年齡為:20
可以看到,雖然構(gòu)造方法中有self、name、age3個(gè)參數(shù),但實(shí)際需要傳參的僅有name和age,也就是說,self不需要手動(dòng)傳遞參數(shù)。
以上內(nèi)容為大家介紹了python培訓(xùn)之怎么理解Python的構(gòu)造方法,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。