zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    OpenJudge 2721 忽略大小写比较字符串大小
    Poj 2586 / OpenJudge 2586 Y2K Accounting Bug
    Poj 2109 / OpenJudge 2109 Power of Cryptography
    Poj 1328 / OpenJudge 1328 Radar Installation
    Poj 2965 The Pilots Brothers' refrigerator
    Poj 2503 / OpenJudge 2503 Babelfish
    Poj 2388 Who's in the Middle
    模板:cin.getline用法
    Poj 3094 Quicksum
    Charles-Mac安装、配置及苹果手机安装证书
  • 原文地址:https://www.cnblogs.com/FlyingLiao/p/11334097.html
Copyright © 2011-2022 走看看