注意python類的構(gòu)造函數(shù)是(開頭結(jié)尾都是雙下劃線):
成都創(chuàng)新互聯(lián)公司是專業(yè)的烏當(dāng)網(wǎng)站建設(shè)公司,烏當(dāng)接單;提供做網(wǎng)站、網(wǎng)站設(shè)計,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行烏當(dāng)網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
def?__init__(self,**kw):
pass
而你寫的_init_()函數(shù)少了下劃線,也就不是Dog類的構(gòu)造函數(shù)了,此時系統(tǒng)采用缺省的默認構(gòu)造函數(shù),即沒有輸入?yún)?shù)。
類是對象的模板,是抽象的。
構(gòu)造函數(shù) init 是Python魔術(shù)方法之一,如圖魔術(shù)方法
我們通過類模版去創(chuàng)建類的實例對象,然后再調(diào)用類定義的功能。
那實例對象的屬性是通過什么來初始化的?
這時候Python引入來構(gòu)造函數(shù) init
構(gòu)造函數(shù),會在創(chuàng)建實例對象之后Python會自動執(zhí)行此方法,把初始化的屬性特點放到實例對象里。
通過前面的學(xué)習(xí),我們知道一個python對象包含三個部分:id(識別碼),type(對象類型),value(對象的值)
那么我們進一步深入對象包含的三部分:
我們通過類創(chuàng)建實例對象后,需要定義構(gòu)造函數(shù) init ()方法。
構(gòu)造方法用于執(zhí)行實例對象的初始化工作,即對象創(chuàng)建之后,初始化當(dāng)前對象的相關(guān)的屬性,無返回值
構(gòu)造函數(shù)重點 :
我們通過栗子來學(xué)習(xí)構(gòu)造函數(shù)的過程
構(gòu)造函數(shù)初始化實例對象過程如下:
1.Animal類會通過默認的 new ()方法為實例對象在堆內(nèi)存中為開辟一個空間
敲黑板,重點來啦~
拓展:
我們今天學(xué)習(xí)了構(gòu)造函數(shù) init (),其在創(chuàng)建對象之后被Python自動調(diào)用初始化實例對象屬性數(shù)據(jù)值,無返回值,并且構(gòu)造函數(shù)不能被顯示調(diào)用。
創(chuàng)建對象時,如果需要,構(gòu)造函數(shù)可以接受參數(shù)。當(dāng)創(chuàng)建沒有構(gòu)造函數(shù)的類時,Python會自動創(chuàng)建一個不執(zhí)行任何操作的默認構(gòu)造函數(shù)。
每個類必須有一個構(gòu)造函數(shù),即使它只依賴于默認構(gòu)造函數(shù)
好啦,以上是本期內(nèi)容,歡迎大佬評論區(qū)指正~
所謂缺省參數(shù),在定義函數(shù)時,可以給某個參數(shù)指定一個默認值,具有默認值的參數(shù)就叫做缺省參數(shù)。調(diào)用函數(shù)時,如果沒有傳入缺省參數(shù)的值,則在函數(shù)內(nèi)部使用定義函數(shù)時指定的參數(shù)默認值。
缺省參數(shù)的作用:
函數(shù)的缺省參數(shù),將常見的值設(shè)置為參數(shù)的缺省值,從而簡化函數(shù)的調(diào)用。
例如:對列表排序的方法
執(zhí)行結(jié)果:
在參數(shù)后使用賦值語句,可以指定參數(shù)的缺省值。
不設(shè)置缺省參數(shù):
執(zhí)行結(jié)果:張三 是 男生
# 假設(shè)班上的男生比女生多,我們不傳遞True這個參數(shù),讓性別默認是男生
設(shè)置缺省參數(shù):
執(zhí)行結(jié)果:
提示:
1. 缺省參數(shù),需要使用最常見的值作為默認值。
2. 如果一個參數(shù)的值不能確定,則不應(yīng)該設(shè)置默認值,具體的數(shù)值在調(diào)用函數(shù)時,由外界傳遞。
一句話講在定義函數(shù)時怎樣指定函數(shù)的缺省參數(shù)的默認值,在形參后面跟上一個等號,等號后面跟上參數(shù)的默認值就可以了??梢钥匆陨习咐?。
必須保證帶有默認值的缺省參數(shù)在參數(shù)列表末尾。
所以,以下定義是錯的:
PyCharm在錯誤的參數(shù)下面會有一個波浪線提示,告訴你要么給它挪到缺省參數(shù)前面,要么它也變成帶有默認值的缺省參數(shù)。
在調(diào)用函數(shù)時,如果有多個缺省參數(shù),需要指定參數(shù)名,這樣解釋器才能能夠知道參數(shù)的對應(yīng)關(guān)系。
執(zhí)行結(jié)果: