property和setter裝飾器
作用:調用方法改為調用對象, 比如 : 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)