我知道python中的描述符是如何工作的,至少我在今天之前做过。
如果类成员定义activity.xaml
,它是一个数据描述符,__set__()
将返回foo.member
而不是foo.member.__get__(foo.member, foo)
个对象。但是,如果在类体中定义了foo.member
,而在类创建后没有分配
例如,此代码返回描述符对象:
foo.member
当我在类体中定义类成员时,它的行为符合预期
In [1]: class descr(object):
...: def __get__(self, obj, type=None):
...: return obj
...: def __set__(self, obj, val):
...: print('Setting', val, 'to', obj)
...:
In [2]: class C:
...: pass
...:
In [3]: c=C()
In [4]: c.foo=descr()
In [5]: c.foo
Out[5]: <__main__.descr at 0x7fd6450bc4e0>
In [6]: c.foo =5
In [7]: c.foo
Out[7]: 5
有人可以详细说明吗?