您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在python中為__setattr__設置屬性,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
1、簡單易用,與C/C++、Java、C# 等傳統語言相比,Python對代碼格式的要求沒有那么嚴格;2、Python屬于開源的,所有人都可以看到源代碼,并且可以被移植在許多平臺上使用;3、Python面向對象,能夠支持面向過程編程,也支持面向對象編程;4、Python是一種解釋性語言,Python寫的程序不需要編譯成二進制代碼,可以直接從源代碼運行程序;5、Python功能強大,擁有的模塊眾多,基本能夠實現所有的常見功能。
1、說明
定義類對象管理屬性并將屬性名以及值存儲在一個實例對象中。
self.attrname 以及 instance.attrname 將會調用類的內置方法__setattr__方法。
2、實例
# attr.pyclass AcessControl: def __init__(self): self.hobby = "basketball" # 會調用下面的__setattr__方法 def __setattr__(self, key, value): # self.name = "xxxx" # 不能在__setattr__上使用self.attr,會導致遞歸應用循環 print("access control set attr ...") if key == 'age': self.__dict__[key] = value + 10 # 通過內建字典來保存屬性數據 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 # 調用__setattr__ print(ac.age) # 直接輸入值,沒有調用__getattr__ print(ac.hobby) # 當屬性有值時,也就是非None是不會調用__getattr__方法的,如果沒有值,即None就會調用__getattr__方法 del ac.age # 調用__delattr__ print(ac.name) # 調用__getattr__,調用未定義的屬性時候就會回調這個函數并且返回Noneif __name__ == '__main__': test_access_control()>>> python attr.py # 2.x & 3.x
上述內容就是怎么在python中為__setattr__設置屬性,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。