通常我會使用inspect.getargspec,但是如何獲得已綁定方法的參數?如何獲取任何python方法的參數?
例如,如何獲取的方法 '富' 的說法名稱如下:
class Foo(object):
@memoized
def foo(self, arg1, arg2):
pass
注意,美孚()foo是一個memoized對象,http://wiki.python.org/moin/PythonDecoratorLibrary#Memoize
這意味着,真的是一個functools.partial實例。
如何獲取原始函數或以某種方式獲取參數?
如果我不能,這是否表明PythonDecoratorLibrary的設計缺陷?
我已經通過有效編寫我自己的Memoize替換,使我能夠獲得原始功能,但是這個問題依然存在。 – Arafangion
eryksun:雖然看起來很奇怪,但它已經有了一個.func(它似乎是一個curried函數?),但是它的返回self.func而不是partial,如果obj是None,我確實爲該partial添加了_wrapped屬性'非常侵入。你可以把它作爲'答案',我可以接受它。我使用的是2.7.x,但是提到python3的lru_cache看起來應該是我應該注意的,你能提供一個參考嗎? – Arafangion