在我的代碼中,我使用Python Decorator庫中的memoized類。需要memoized函數來像函數一樣詭異
我正在使用的一個庫對函數使用自省來獲取它所需的參數數量,並且在裝飾的函數上失敗。具體來說,它會檢查co_argcount
變量。
if (PyInt_AsLong(co_argcount) < 1) {
PyErr_SetString(PyExc_TypeError, "This function has no parameters to mini\
mize.");
看來argcount沒有被轉移到memoized函數。
>>> def f(x):
... return x
...
>>> f.func_code.co_argcount
1
>>> g = memoized(f)
>>> g.func_code.co_argcount
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'memoized' object has no attribute 'func_code'
如何修改memoized類,以便我的memoized函數看起來,味道和氣味像原來的功能?