python中property和setter裝飾器


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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM