更新時(shí)間:2021-07-02 來(lái)源:黑馬程序員 瀏覽量:
每個(gè)類都有一個(gè)默認(rèn)的__init__()方法,如果在定義類時(shí)顯式地定義了__init__()方法,則創(chuàng)建對(duì)象時(shí)Python解釋器會(huì)調(diào)用顯式定義的__init__()方法;如果定義類時(shí)沒有顯式定義__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ù)項(xiàng)目用戶畫像實(shí)戰(zhàn)
2021-07-02python有哪些基礎(chǔ)操作?怎樣添加、刪除、修改列表元素?
2021-07-01大數(shù)據(jù)課程需要學(xué)習(xí)Python嗎?
2021-06-28Python+大數(shù)據(jù)開發(fā)就業(yè)方向有哪些?
2021-06-28為什么pyhon+大數(shù)據(jù)課程中Java和python課程減少了?
2021-06-28原本大數(shù)據(jù)的課程就獨(dú)立有6個(gè)月,現(xiàn)在大數(shù)據(jù)部分課程只有3個(gè)月時(shí)間夠用嗎?
2021-06-28