溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python類的構(gòu)造函數(shù)解析

發(fā)布時間:2020-05-19 15:20:04 來源:億速云 閱讀:342 作者:小新 欄目:編程語言

 python魔法方法:__init__( )方法,被稱為構(gòu)造方法。__init__()方法的魔力體現(xiàn)在只要實例化一個對象,這個方法就會在對象被創(chuàng)建時自動調(diào)用。實例化對象時是可以傳入?yún)?shù)的,這些參數(shù)會自動傳入__init__()方法中,可以通過重寫這個方法來自定義對象的初始化操作。

總結(jié):__init__()方法是一個特殊的方法,在對象實例化時會被調(diào)用,__init__()方法的作用是初始化。

python類的構(gòu)造函數(shù)解析

例1:

class Myclass:
    i = 123
    def __init__(self,friend):
        self.friend = friend
 
    def func(self,myself):    #帶有參數(shù)的類方法
        self.myself = myself
        return self.myself +"say hello to " + self.friend
 
use_class = Myclass("xiaoming")
print("調(diào)用類的屬性:",use_class.i)
print("調(diào)用類的方法:", use_class.func("xiaohong"))

輸出結(jié)果:

#調(diào)用類的屬性: 123
#調(diào)用類的方法: xiaohongsay hello to xiaoming

1、在python中定義類時沒有定義__init__( )方法,則在類實例化時系統(tǒng)會自動調(diào)用默認(rèn)的構(gòu)造方法(無參數(shù)的__init__( )方法),另外__init__( )方法可以有參數(shù),參數(shù)通過__init__( )傳遞到類的實例化操作上

2、一個類中可以定義多個構(gòu)造方法(__init__( )),但是實例化類時只會實例化最后的構(gòu)造方法,即后面的構(gòu)造方法會覆蓋前面的構(gòu)造方法,并且需要根據(jù)最后一個構(gòu)造方法的形式進行實例化(參數(shù)與最后一個構(gòu)造方法的參數(shù)一致)。因此一個類中最好只定義一個構(gòu)造方法

3、初始化實例包括:定義和初始化實例屬性或調(diào)用類的一些方法。

4、構(gòu)造方法可以帶有除self外的其它各種參數(shù)(關(guān)鍵字參數(shù)、默認(rèn)參數(shù)、用元組收集參數(shù)、用字典收集關(guān)鍵字參數(shù)等),可以在實例化類時,傳入對應(yīng)的實參。

當(dāng)類中的一個對象被創(chuàng)建時,會立即調(diào)用構(gòu)造方法。

構(gòu)造方法 init的使用:

class FooBar:
    def __init__(self):
        self.somevar = 42
f = FooBar()
print f.somevar
(這里注意f = FooBar(),要帶括號)

輸出結(jié)果:

42

帶參數(shù)構(gòu)造

class FooBar:
    def __init__(self,value=42):
        self.somevar = value
f = FooBar("this is a constructor argument")
print f.somevar

輸出結(jié)果:

this is a constructor argument

以上就是python類的構(gòu)造函數(shù)是什么的詳細內(nèi)容,更多請關(guān)注億速云其它相關(guān)文章!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI