python中property和setter裝飾器用法
阿新 • • 發佈:2020-01-09
作用:呼叫方法改為呼叫物件, 比如 : p.set_name() 改為 p.set_name
區別:前者改變get方法,後者改變set方法
效果圖:
程式碼:
class Person: def __init__(self,name): self._name = name def get_name(self): return self._name def set_name(self,name): self._name = name p = Person('小黑') print(p.get_name()) p.set_name('小灰') print(p.get_name())
class Person: def __init__(self,name): self._name = name # 利用property裝飾器將獲取name方法轉換為獲取物件的屬性 @property def get_name(self): return self._name # 利用property裝飾器將設定name方法轉換為獲取物件的屬性 @get_name.setter def set_name(self,name): self._name = name p = Person('小黑') print(p.get_name) # 原 p.get_name(),現 p.get_name p.set_name = '小灰' # 原 p.set_name('小灰'),現 p.set_name = '小灰' print(p.get_name)
標準寫法:
效果圖:
程式碼:
# property裝飾器 # 作用: 將一個get方法轉換為物件的屬性。 就是 呼叫方法改為呼叫物件 # 使用條件: 必須和屬性名一樣 # setter方法的裝飾器: # 作用:將一個set方法轉換為物件的屬性。 就是 a呼叫方法改為呼叫物件 # 使用方法:@屬性名.setter class Person: def __init__(self,name): self._name = name # 利用property裝飾器將獲取name方法轉換為獲取物件的屬性 @property def name(self): return self._name # 利用property裝飾器將設定name方法轉換為獲取物件的屬性 @name.setter def name(self,name): self._name = name p = Person('小黑') print(p.name) # 原獲取 p.name(),現 p.name p.name = '小灰' # 原設定 p.name('小灰'),現 p.name = '小灰' print(p.name)
以上這篇python中property和setter裝飾器用法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。