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)
    复制代码
  • 相关阅读:
    启动另外一个activity,并返回结果
    MySQL5.0版本的安装图解
    android 通过Eclipse进行数字签名
    asp.net 未能写入输出文件--“拒绝访问的解决办法
    NeatUpload——支持大文件上传的控件
    ImageView的缩放模式
    开启手机LogCat
    得到Access数据库中的所有表名
    如何保护Excel工作表,不被人修改或删除指定区域
    Excel实现下拉列表选择
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14991489.html
Copyright © 2011-2022 走看看