标签:object test 结果 delete 实例 返回 打印 style 控制
一、描述符的定义:
描述符就是将特殊类型的类的实例指派给另外一个类的属性
1、举例:
特殊类型的类要实现以下三个方法中的其中一个或者全部实现
* __get__(self,instance,owner)
--用于访问属性,它返回属性的值
* __set__(self,instance,value)
--用于设置属性,不返回任何内容
* __delete__(self,instance)
--控制删除操作,不返回任何内容
class MyDecriptor: def __get__(self,instance,owner): #打印查看描述符的get,set,delete方法中各个参数的含义 print("getting...",self,instance,owner) def __set__(self,instance,value): print("setting...",self,instance,value) def __delete__(self,instance): print("deleteing...",self,instance) class Test: #把特殊类MyDecriptor的实例指派给Test类的x属性 x = MyDecriptor() 执行结果: >>> test = Test() >>> test.x getting... <__main__.MyDecriptor object at 0x10a2186d8> <__main__.Test object at 0x10a208f60> <class ‘__main__.Test‘> >>> test <__main__.Test object at 0x10a208f60> >>> Test <class ‘__main__.Test‘> ‘‘‘ |--由打印出来的getting...,可以看出来,参数self是MyDecriptor的对象(<__main__.MyDecriptor object at 0x10a2186d8>) |--参数instance是Test的对象(<__main__.Test object at 0x10a208f60>) |--参数owner是Test的本类自己(<class ‘__main__.Test‘>) |--具体可由对象test打印出来的内容,和Test类打印出来的内容得到验证 |--set和delete同理 ‘‘‘ >>> test.x = "X-man" setting... <__main__.MyDecriptor object at 0x10a2186d8> <__main__.Test object at 0x10a208f60> X-man >>> del test.x deleteing... <__main__.MyDecriptor object at 0x10a2186d8> <__main__.Test object at 0x10a208f60> >>>
2、二次举例:实现property
标签:object test 结果 delete 实例 返回 打印 style 控制
原文地址:https://www.cnblogs.com/frankruby/p/9951484.html