本篇文章為大家展示了怎么在python中為__setattr__設(shè)置屬性,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。
目前成都創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、鄄城網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
1、簡單易用,與C/C++、Java、C# 等傳統(tǒng)語言相比,Python對代碼格式的要求沒有那么嚴(yán)格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺上使用;3、Python面向?qū)ο?,能夠支持面向過程編程,也支持面向?qū)ο缶幊蹋?、Python是一種解釋性語言,Python寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序;5、Python功能強(qiáng)大,擁有的模塊眾多,基本能夠?qū)崿F(xiàn)所有的常見功能。
1、說明
定義類對象管理屬性并將屬性名以及值存儲在一個(gè)實(shí)例對象中。
self.attrname 以及 instance.attrname 將會調(diào)用類的內(nèi)置方法__setattr__方法。
2、實(shí)例
# attr.pyclass AcessControl: def __init__(self): self.hobby = "basketball" # 會調(diào)用下面的__setattr__方法 def __setattr__(self, key, value): # self.name = "xxxx" # 不能在__setattr__上使用self.attr,會導(dǎo)致遞歸應(yīng)用循環(huán) print("access control set attr ...") if key == 'age': self.__dict__[key] = value + 10 # 通過內(nèi)建字典來保存屬性數(shù)據(jù) else: self.__dict__[key] = value def __delattr__(self, item): print("del item[%s]" % item) def __getattr__(self, item): print("get item[%s]" % item) def test_access_control(): ac = AcessControl() ac.age = 10 # 調(diào)用__setattr__ print(ac.age) # 直接輸入值,沒有調(diào)用__getattr__ print(ac.hobby) # 當(dāng)屬性有值時(shí),也就是非None是不會調(diào)用__getattr__方法的,如果沒有值,即None就會調(diào)用__getattr__方法 del ac.age # 調(diào)用__delattr__ print(ac.name) # 調(diào)用__getattr__,調(diào)用未定義的屬性時(shí)候就會回調(diào)這個(gè)函數(shù)并且返回Noneif __name__ == '__main__': test_access_control()>>> python attr.py # 2.x & 3.x
上述內(nèi)容就是怎么在python中為__setattr__設(shè)置屬性,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站標(biāo)題:怎么在python中為__setattr__設(shè)置屬性
分享網(wǎng)址:http://jinyejixie.com/article26/gdjscg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、動態(tài)網(wǎng)站、靜態(tài)網(wǎng)站、小程序開發(fā)、Google、網(wǎng)站導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)