本篇文章為大家展示了怎么在python中為__setattr__設(shè)置屬性,內(nèi)容簡明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(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對(duì)代碼格式的要求沒有那么嚴(yán)格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺(tái)上使用;3、Python面向?qū)ο?,能夠支持面向過程編程,也支持面向?qū)ο缶幊蹋?、Python是一種解釋性語言,Python寫的程序不需要編譯成二進(jìn)制代碼,可以直接從源代碼運(yùn)行程序;5、Python功能強(qiáng)大,擁有的模塊眾多,基本能夠?qū)崿F(xiàn)所有的常見功能。
1、說明
定義類對(duì)象管理屬性并將屬性名以及值存儲(chǔ)在一個(gè)實(shí)例對(duì)象中。
self.attrname 以及 instance.attrname 將會(huì)調(diào)用類的內(nèi)置方法__setattr__方法。
2、實(shí)例
# attr.pyclass AcessControl: def __init__(self): self.hobby = "basketball" # 會(huì)調(diào)用下面的__setattr__方法 def __setattr__(self, key, value): # self.name = "xxxx" # 不能在__setattr__上使用self.attr,會(huì)導(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是不會(huì)調(diào)用__getattr__方法的,如果沒有值,即None就會(huì)調(diào)用__getattr__方法 del ac.age # 調(diào)用__delattr__ print(ac.name) # 調(diào)用__getattr__,調(diào)用未定義的屬性時(shí)候就會(huì)回調(diào)這個(gè)函數(shù)并且返回Noneif __name__ == '__main__': test_access_control()>>> python attr.py # 2.x & 3.x
上述內(nèi)容就是怎么在python中為__setattr__設(shè)置屬性,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。