人生与戏

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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 on 2019-08-11 10:23  人生与戏  阅读(8352)  评论(0编辑  收藏  举报