描述符__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触发