日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Python構(gòu)造函數(shù)(二十二)

 豆寶有蟲吃 2019-07-12

構(gòu)造函數(shù)是一種特殊類型的方法(函數(shù)),它在類的實(shí)例化對象時被調(diào)用。 構(gòu)造函數(shù)通常用于初始化(賦值)給實(shí)例變量。 構(gòu)造函數(shù)還驗(yàn)證有足夠的資源來使對象執(zhí)行任何啟動任務(wù)。

創(chuàng)建一個構(gòu)造函數(shù)

構(gòu)造函數(shù)是以雙下劃線(__)開頭的類函數(shù)。構(gòu)造函數(shù)的名稱是__init__()。

創(chuàng)建對象時,如果需要,構(gòu)造函數(shù)可以接受參數(shù)。當(dāng)創(chuàng)建沒有構(gòu)造函數(shù)的類時,Python會自動創(chuàng)建一個不執(zhí)行任何操作的默認(rèn)構(gòu)造函數(shù)。

每個類必須有一個構(gòu)造函數(shù),即使它只依賴于默認(rèn)構(gòu)造函數(shù)。

舉一個例子:

創(chuàng)建一個名為ComplexNumber的類,它有兩個函數(shù)__init__()函數(shù)來初始化變量,并且有一個getData()方法用來顯示數(shù)字。

看這個例子:

#!/usr/bin/python3#coding=utf-8
class ComplexNumber:
def __init__(self, r = 0, i = 0):
''''初始化方法'''
self.real = r
self.imag = i
def getData(self):
print('{0}+{1}j'.format(self.real, self.imag))
if __name__ == '__main__':
c = ComplexNumber(5, 6)
c.getData()

執(zhí)行上面代碼,得到以下結(jié)果 -

5+6j

可以為對象創(chuàng)建一個新屬性,并在定義值時進(jìn)行讀取。但是不能為已創(chuàng)建的對象創(chuàng)建屬性。

看這個例子:

#!/usr/bin/python3
#coding=utf-8
class ComplexNumber:
def __init__(self, r = 0, i = 0):
''''初始化方法'''
self.real = r
self.imag = i
def getData(self):
print('{0}+{1}j'.format(self.real, self.imag))
if __name__ == '__main__':
c = ComplexNumber(5, 6)
c.getData()
c2 = ComplexNumber(10, 20)
# 試著賦值給一個未定義的屬性
c2.attr = 120
print('c2 = > ', c2.attr)
print('c.attr => ', c.attr)

執(zhí)行上面代碼,得到以下結(jié)果 -

5+6j
c2 = > 120
Traceback (most recent call last):
File 'D:\test.py', line 23, in <module>
print('c.attr => ', c.attr)
AttributeError: 'ComplexNumber' object has no attribute 'attr'

著作權(quán)歸作者所有

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多