4
Python函数有一个描述符。我相信在大多数情况下,我不应该直接使用它,但我想知道这个功能是如何工作的?我试图用这样的对象几个操作的:如何在函数中工作预定义的描述符?
def a(): return 'x' a.__get__.__doc__ 'descr.__get__(obj[, type]) -> value'
什么是obj的,什么是类型?
>>> a.__get__() TypeError: expected at least 1 arguments, got 0 >>> a.__get__('s') <bound method ?.a of 's'> >>> a.__get__('s')() TypeError: a() takes no arguments (1 given)
当然,我不能做到这招与不采取任何参数的函数。是否只需要用参数调用函数?
>>> def d(arg1, arg2, arg3): return arg1, arg2, arg3 >>> d.__get__('s')('x', 'a') ('s', 'x', 'a')
为什么由
__get__
直接采取的第一个参数,并通过一切返回的对象别的吗?
太棒了!谢谢。 – I159 2013-02-10 16:56:11
'a .__ get __(C)'就像'C.a',而不是'C()。a',就像你的第二个例子。 – Eric 2013-02-10 17:42:32
非常棒的答案,@大卫罗宾逊 – 2016-10-11 04:59:30