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