DAY 149 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)
复制代码
复制代码
posted @   DEJAVU_ERIC  阅读(41)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示