更新時(shí)間:2021-07-02 來源:黑馬程序員 瀏覽量:
每個(gè)類都有一個(gè)默認(rèn)的__init__()方法,如果在定義類時(shí)顯式地定義了__init__()方法,則創(chuàng)建對象時(shí)Python解釋器會調(diào)用顯式定義的__init__()方法;如果定義類時(shí)沒有顯式定義__init__()方法,那么Python解釋器會調(diào)用默認(rèn)的__init__()方法。
__init__()方法按照參數(shù)的有無(self除外)可分為有參構(gòu)造方法和無參構(gòu)造方法,無參構(gòu)造方法中可以為屬性設(shè)置初始值,此時(shí)使用該方法創(chuàng)建的所有對象都具有相同的初始值。若希望每次創(chuàng)建的對象都有不同的初始值,則可以使用有參構(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類,然后通過參數(shù)name與sex為屬性name和sex進(jìn)行賦值,最后在info()方法中訪問屬性name和sex的值。
因?yàn)槎x的構(gòu)造方法中需要接收兩個(gè)實(shí)際參數(shù),所以在實(shí)例化Information類對象時(shí)需要傳入兩個(gè)參數(shù),示例代碼如下:
infomation = Inforamtion('李婉', '女') infomation.info()
運(yùn)行代碼,結(jié)果如下所示:
姓名:李婉 性別:女
注意:
前面在類中定義的屬性是類屬性,可以通過對象或類進(jìn)行訪問;在構(gòu)造方法中定義的屬性是實(shí)例屬性,只能通過對象進(jì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