小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Python類編寫(原創(chuàng))

 軟件團(tuán)隊(duì)頭目 2006-05-23


今天開(kāi)始進(jìn)行Python類編寫的學(xué)習(xí),用起來(lái)還是比較簡(jiǎn)單的,Python允許在任何成員函數(shù)中聲明一個(gè)類的成員變量,不過(guò)實(shí)際開(kāi)發(fā)的時(shí)候這種做法不是一個(gè)好習(xí)慣。個(gè)人認(rèn)為,Python類的成員變量最好是在類的構(gòu)造函數(shù)里面聲明并作初始化,然后在其他的成員函數(shù)里面使用,這樣就不會(huì)出現(xiàn)對(duì)成員變量作條件判斷的時(shí)候,由于對(duì)該成員聲明和初始化的函數(shù)沒(méi)有被調(diào)用到,而導(dǎo)致程序出錯(cuò)。

以下是兩個(gè)簡(jiǎn)單的例子:

class Wrong:
    def __init__(self):
        pass

    def GetWrong(self):
        return self.bIsWrong

   
    def ShowWrong(self):
        if self.bIsWrong == True:
            print "wrong"
        else:
            print "right"

    def SetWrong(self,bIsWrong):
        self.bIsWrong = bIsWrong

錯(cuò)誤的調(diào)用順序:

testWrong = Wrong()
testWrong.GetWrong()
testWrong.ShowWrong()
testWrong.SetWrong(True)
運(yùn)行結(jié)果:

E:\>python Wrong.py
Traceback (most recent call last):
  File "Wrong.py", line 19, in ?
    testWrong.GetWrong()
  File "Wrong.py", line 6, in GetWrong
    return self.bIsWrong
AttributeError: Wrong instance has no attribute ‘bIsWrong‘

調(diào)整一下調(diào)用順序:

testWrong = Wrong()
testWrong.SetWrong(True)
testWrong.GetWrong()
testWrong.ShowWrong()
運(yùn)行結(jié)果:

E:\>python Wrong.py
wrong 

問(wèn)題在哪里,前面已經(jīng)講過(guò)了,這只是一個(gè)簡(jiǎn)單的程序,還是比較好找原因,如果遇到一個(gè)復(fù)雜的程序,就不是這么簡(jiǎn)單了……

如果我們?cè)跇?gòu)造函數(shù)中聲明初始化成員變量:

class Wrong:
    def __init__(self):
        self.bIsWrong = True

問(wèn)題就解決了,隨便利用什么調(diào)用順序,都沒(méi)有問(wèn)題。

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

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多