Python @property裝飾器原理解析
阿新 • • 發佈:2020-01-24
這篇文章主要介紹了Python @property裝飾器原理解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
1.通過@property裝飾器,可以直接通過方法名來訪問方法,不需要在方法名後新增一對“()”小括號。
class Person: def __init__(self,name): self.__name = name @property def say(self): return self.__name xioabai = Person("xiaobai") #直接通過方法名來訪問say方法 print("我的名字是:",xiaobai.say)
我的名字是: xiaobai
上面程式中,使用@property修飾了say()方法,這就使得該方法變成了name屬性的getter方法。
2.使用setter裝飾器,可以為say方法新增setter方法。
class Person: def __init__(self,name): self.__name = name @property def say(self): return self.__name @say.setter def say(self,value): self.__name = value xiaobai = Person("xiaobai") xiaobai.say = "xiaohei" print("我的名字其實是:",xiaobai.say)
我的名字其實是: xiaohei
3.使用deleter裝飾器來刪除指定屬性,可以為say方法新增deleter方法
class Person: def __init__(self,value): self.__name = value @say.deleter def say(self): self.__name = "xxx" xiaobai = Person("xiaobai") del xiaobai.say print("我的名字其實是:",xiaobai.say)
我的名字其實是: xxx
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。