时间:2021-07-01 10:21:17 帮助过:63人阅读
>>> class MyInt(int):
... def square(self):
... return self*self
...
>>> n = MyInt(2)
>>> n.name = 'two'
>>> n.square()
4
>>> n.name
'two'
简单来讲,描述符就是一个Python对象,但这个对象比较特殊,特殊性在于其属性的访问方式不再像普通对象那样访问,它通过一种叫描述符协议的方法来访问。这些方法包括__get__、__set__、__delete__。定义了其中任意一个方法的对象都叫描述符。举个例子:
普通对象
class Parent(object):
name = 'p'
class Person(Parent):
name = "zs"
zhangsan = Person()
zhangsan.name = "zhangsan"
print zhangsan.name
#>> zhangsan
以为是Python3.4里新加的什么牛逼功能,还和单继承联系起来了。吓得我赶紧翻了一下文档。