問(wèn):對(duì)于python中的初始化init這個(gè)怎么理解?。?/p>
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),青龍企業(yè)網(wǎng)站建設(shè),青龍品牌網(wǎng)站建設(shè),網(wǎng)站定制,青龍網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,青龍網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
答:相當(dāng)于類(lèi)的構(gòu)造函數(shù),用來(lái)初始化變量等。
問(wèn): param = self._args['receiving'].replace("\\'", "'")這一句是啥意思啊?還有addReceiving(self)中self到底是什么?。?/p>
答:在對(duì)class進(jìn)行調(diào)用的過(guò)程中,會(huì)首先執(zhí)行__init__這個(gè)構(gòu)造函數(shù),可以看到在構(gòu)造函數(shù)中,對(duì)_args進(jìn)行了賦值,在python中"_"一般代表這個(gè)參數(shù)是private的。
問(wèn):我的理解是args是LogisticsService類(lèi)的一個(gè)屬性,addReceiving(self)方法中的參數(shù)self就是LogisticsService類(lèi)中的args。求大神指導(dǎo)!!
答:大神來(lái)了,args是一個(gè)字典類(lèi)型,是LogisticsService的在init初始化的一個(gè)字段。
大神做到底,再給你個(gè)示例,你琢磨一下
__init__()是為了做初始化用的
我們初始化得時(shí)候不一定要使用__init__()進(jìn)行初始化,可以直接定義
比如
class?test(self):
test_a?=?"123"
這里就初始話了一個(gè)變量test_a = "123",但這樣就太固定
而__init__()的好處在于它可以接收參數(shù)并初始化
__init__(self,testa):
test_a = testa
這樣類(lèi)就可以初始化話一個(gè)動(dòng)態(tài)的變量,更加靈活
而且直接test("123")就將test_a 初始成123了
python中的__init__()時(shí)類(lèi)的初始化函數(shù),比如:
class?Obj:
def?__init__():
print?1
obj?=?Obj()?#這時(shí)候調(diào)用__init__這個(gè)方法
如果解決了您的問(wèn)題請(qǐng)采納!
如果未解決請(qǐng)繼續(xù)追問(wèn)
類(lèi)的構(gòu)造函數(shù),用于初始化類(lèi)成員等,只能用__init__
,不能換其他名字
設(shè)有個(gè)類(lèi)myclass,
相當(dāng)于c++,java里面的
myclass()
類(lèi)是對(duì)象的模板,是抽象的。
構(gòu)造函數(shù) init 是Python魔術(shù)方法之一,如圖魔術(shù)方法
我們通過(guò)類(lèi)模版去創(chuàng)建類(lèi)的實(shí)例對(duì)象,然后再調(diào)用類(lèi)定義的功能。
那實(shí)例對(duì)象的屬性是通過(guò)什么來(lái)初始化的?
這時(shí)候Python引入來(lái)構(gòu)造函數(shù) init
構(gòu)造函數(shù),會(huì)在創(chuàng)建實(shí)例對(duì)象之后Python會(huì)自動(dòng)執(zhí)行此方法,把初始化的屬性特點(diǎn)放到實(shí)例對(duì)象里。
通過(guò)前面的學(xué)習(xí),我們知道一個(gè)python對(duì)象包含三個(gè)部分:id(識(shí)別碼),type(對(duì)象類(lèi)型),value(對(duì)象的值)
那么我們進(jìn)一步深入對(duì)象包含的三部分:
我們通過(guò)類(lèi)創(chuàng)建實(shí)例對(duì)象后,需要定義構(gòu)造函數(shù) init ()方法。
構(gòu)造方法用于執(zhí)行實(shí)例對(duì)象的初始化工作,即對(duì)象創(chuàng)建之后,初始化當(dāng)前對(duì)象的相關(guān)的屬性,無(wú)返回值
構(gòu)造函數(shù)重點(diǎn) :
我們通過(guò)栗子來(lái)學(xué)習(xí)構(gòu)造函數(shù)的過(guò)程
構(gòu)造函數(shù)初始化實(shí)例對(duì)象過(guò)程如下:
1.Animal類(lèi)會(huì)通過(guò)默認(rèn)的 new ()方法為實(shí)例對(duì)象在堆內(nèi)存中為開(kāi)辟一個(gè)空間
敲黑板,重點(diǎn)來(lái)啦~
拓展:
我們今天學(xué)習(xí)了構(gòu)造函數(shù) init (),其在創(chuàng)建對(duì)象之后被Python自動(dòng)調(diào)用初始化實(shí)例對(duì)象屬性數(shù)據(jù)值,無(wú)返回值,并且構(gòu)造函數(shù)不能被顯示調(diào)用。
創(chuàng)建對(duì)象時(shí),如果需要,構(gòu)造函數(shù)可以接受參數(shù)。當(dāng)創(chuàng)建沒(méi)有構(gòu)造函數(shù)的類(lèi)時(shí),Python會(huì)自動(dòng)創(chuàng)建一個(gè)不執(zhí)行任何操作的默認(rèn)構(gòu)造函數(shù)。
每個(gè)類(lèi)必須有一個(gè)構(gòu)造函數(shù),即使它只依賴(lài)于默認(rèn)構(gòu)造函數(shù)
好啦,以上是本期內(nèi)容,歡迎大佬評(píng)論區(qū)指正~