zoukankan      html  css  js  c++  java
  • 描述符__get__,__set__,__delete__

    描述符__get__,__set__,__delete__

    # 描述符:1用来代理另外一个类的属性
    # __get__():调用一个属性时,触发
    # __set__():为一个属性赋值时触发
    # __delete__():采用del输出属性时,触发
    
    # 定义一个描述符的格式,里面包括有__get__,__set__,__delete__方法,这样的一个类就被叫做描述符
    # 该描述符的作用是为另外一个类的类属性进行服务,另外一个类就是描述符的对象
    class Foo:
        def __get__(self, instance, owner): #取值
            print('get触发')
    
        def __set__(self, instance, value):#赋值
            print('set触发')
    
        def __delete__(self, instance):#删除
            print('delete触发')
    # 以上都被称为描述符,他的作用主要在于对另外一个类进行服务
    
    class Bar:  #这个类必须是新式类,当然py3中默认都是新式类.
    
        x = Foo()  #既然是描述符服务于另外一个类的属性,那么这里就用上了,即将这个类作用于另外一个类的属性来使用
    
    
    
    f = Bar()  #这些地方被触发
    f.x  #get触发  这样就触发了这样一个描述符里面的get方法
    
    f.x = 'age' #set触发
    f.x #get触发
    
    del f.x #delete触发
    
  • 相关阅读:
    Linux(CentOS)下安装OMNet++
    Linux(CentOS)安装JDK
    给电脑安装Linux系统(CentOS)
    OmNet++遇到的问题
    数论倒数总结
    [AHOI2007]密码箱
    [AHOI2005]约数研究
    Spark scala groupBy后求和
    Scala Seq创建简单的Spark DataFrame
    Spark DataFrame分组后选取第一行
  • 原文地址:https://www.cnblogs.com/sunny7/p/9727334.html
Copyright © 2011-2022 走看看