這篇文章將為大家詳細講解有關(guān)Python中new方法的作用是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
new_ 方法是什么?
__new__方法其實就是創(chuàng)建對象的方法
new()方法是在類準備將自身實例化時調(diào)用。
一個類可以有多個位置參數(shù)和多個命名參數(shù),而在實例化開始之后,在調(diào)用 init()方法之前,Python首先調(diào)用new()方法:
def new(cls, *args, **kwargs): …
第一個參數(shù)cls是當前正在實例化的類。
如果要得到當前類的實例,應當在當前類中的new()方法語句中調(diào)用當前類的父類 的new()方法。
例如,如果當前類是直接繼承自object,那當前類的new()方法返回的對象應該為:
def new(cls, *args, **kwargs): … return object.new(cls)
通常來說,當前類開始實例化時,new()方法會返回cls(cls指代當前類)的實例,然后該類的init()方法作為構(gòu)造方法會接收這個實例(即self)作為自己的第一個參數(shù),然后依次傳入new ()方法中接收的位置參數(shù)和命名參數(shù)。
注意:如果new()沒有返回cls(即當前類)的實例,那么當前類的init()方法是不會被調(diào)用的。
如果new()返回其他類的實例,那么只會調(diào)用被返回的那個類的構(gòu)造方法。
class Foo(object): def init(self, *args, **kwargs): pass def new(cls, *args, **kwargs): return object.new(Stranger, *args, **kwargs)
class Stranger(object): pass
foo = Foo() print(type(foo)) 》》》》<class ‘main.Stranger'>
因此可以這么描述new()和ini()的區(qū)別,在新式類中new()才是真正的實例化方法,為類提供外殼制造出實例框架,然后調(diào)用該框架內(nèi)的構(gòu)造方法init()使其豐滿。
如果以建房子做比喻,new()方法負責開發(fā)地皮,打下地基,并將原料存放在工地。
而init()方法負責從工地取材料建造出地皮開發(fā)招標書中規(guī)定的大樓,init()負責大樓的細節(jié)設(shè)計,建造,裝修使其可交付給客戶。
Python是一種編程語言,內(nèi)置了許多有效的工具,Python幾乎無所不能,該語言通俗易懂、容易入門、功能強大,在許多領(lǐng)域中都有廣泛的應用,例如最熱門的大數(shù)據(jù)分析,人工智能,Web開發(fā)等。
關(guān)于Python中new方法的作用是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞名稱:Python中new方法的作用是什么-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://www.chinadenli.net/article8/ijhop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機網(wǎng)站建設(shè)、Google、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容