• 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)
    复制代码
  • 相关阅读:
    js获取Session问题 dodo
    复制一个datatable的指定行到另外一个datatable dodo
    sqlserver数据库备份与还原语句 dodo
    net软件测试实战技术大全 dodo
    AJAX 浏览器支持 dodo
    使用 vs2005进行负载测试 dodo
    sql使用in批量删除 dodo
    各种浏览器兼容存在的方法:Xenocode Browser Sandbox dodo
    C#调用Windows API函数 dodo
    ewebeditor在ie8下报错 dodo
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14991489.html
Copyright © 2020-2023  润新知