|

楼主 |
发表于 2020-2-19 09:41:24
|
显示全部楼层
本帖最后由 狐狸1 于 2020-2-19 10:03 编辑
2020/2/19
描述符(property)的原理
*描述符就是将某种特殊类型的类的实例指派给另一个类的属性
*特殊类型的类要实行以下三种方法中的一个或多个方法:
*__get__(self,instance,owner) #用于访问属性,它返回属性的值
*__set__(self,instance,value) #将在属性分配操作中调用,不返回任何内容
*__delete__(self,instance) #控制删除操作,不返回任何内容
例子:
class MyDecriptor:
def __get__(self,instance,owner):
print('getting',self,instance,owner)
def __set__(self,instance,value):
print('settting',self,instance,value)
def __delete__(self,instance):
print('deleting',self,instance)
class Text:
x = MyDecriptor()
text = Text()
text.x
text.x = 'X-main'
del text.x
#输出结果为:
getting <__main__.MyDecriptor object at 0x03525F70> <__main__.Text object at 0x033DAE08> <class '__main__.Text'>
settting <__main__.MyDecriptor object at 0x039DB5B0> <__main__.Text object at 0x03A25F70> X-main
deleting <__main__.MyDecriptor object at 0x039DB5B0> <__main__.Text object at 0x03A25F70>
|
|