zoukankan      html  css  js  c++  java
  • 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)
    复制代码
  • 相关阅读:
    在win7 64位上安装VS2015的问题汇总
    关于C#类的深拷贝的问题
    线程、进程
    c#日志 log4net
    C#常识
    Tribon数据抽取的一些心得
    Java Web相关课程学习笔记
    过滤器、监听器、拦截器的区别
    SHH架构中几个配置文件解释 applicationContext.xml web.xml struts.xml
    vue关于动态增加路由页面
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14991489.html
Copyright © 2011-2022 走看看