首頁(yè)技術(shù)文章正文

Python中如何使用構(gòu)造方法定義類?

更新時(shí)間:2021-07-02 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

每個(gè)類都有一個(gè)默認(rèn)的__init__()方法,如果在定義類時(shí)顯式地定義了__init__()方法,則創(chuàng)建對(duì)象時(shí)Python解釋器會(huì)調(diào)用顯式定義的__init__()方法;如果定義類時(shí)沒(méi)有顯式定義__init__()方法,那么Python解釋器會(huì)調(diào)用默認(rèn)的__init__()方法。

__init__()方法按照參數(shù)的有無(wú)(self除外)可分為有參構(gòu)造方法和無(wú)參構(gòu)造方法,無(wú)參構(gòu)造方法中可以為屬性設(shè)置初始值,此時(shí)使用該方法創(chuàng)建的所有對(duì)象都具有相同的初始值。若希望每次創(chuàng)建的對(duì)象都有不同的初始值,則可以使用有參構(gòu)造方法實(shí)現(xiàn)。

例如,定義一個(gè)類Information,在該類中顯式地定義一個(gè)帶有3個(gè)參數(shù)的__init__()方法和info()方法,示例代碼如下:

class Inforamtion(object):
    def __init__(self, name, sex):     # 有參構(gòu)造方法
        self.name = name               # 添加屬性name
        self.sex = sex                 # 添加屬性sex
    def info(self):
        print(f'姓名:{self.name}')
        print(f'性別:{self.sex}')
上述代碼中首先定義了一個(gè)包含三個(gè)參數(shù)的Information類,然后通過(guò)參數(shù)name與sex為屬性name和sex進(jìn)行賦值,最后在info()方法中訪問(wèn)屬性name和sex的值。

因?yàn)槎x的構(gòu)造方法中需要接收兩個(gè)實(shí)際參數(shù),所以在實(shí)例化Information類對(duì)象時(shí)需要傳入兩個(gè)參數(shù),示例代碼如下:

infomation = Inforamtion('李婉', '女')
infomation.info()

運(yùn)行代碼,結(jié)果如下所示:

姓名:李婉
性別:女

注意:

前面在類中定義的屬性是類屬性,可以通過(guò)對(duì)象或類進(jìn)行訪問(wèn);在構(gòu)造方法中定義的屬性是實(shí)例屬性,只能通過(guò)對(duì)象進(jìn)行訪問(wèn)。






猜你喜歡:

大數(shù)據(jù)課程需要學(xué)習(xí)Python嗎?

Python JsonPath解析json的方法

margin“塌陷”有哪些解決方法?

黑馬程序員Python+大數(shù)據(jù)開(kāi)發(fā)培訓(xùn)

分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!