在我的代码中,我使用了Python Decorator库中的nice memoized类。在
我用了一个函数,用了一个自省函数。具体地说,它检查co_argcount
变量。在
if (PyInt_AsLong(co_argcount) < 1) {
PyErr_SetString(PyExc_TypeError, "This function has no parameters to mini\
mize.");
似乎argcount没有被转移到memorized函数。在
^{pr2}$如何修改memorized类,使我的memorized函数看起来、尝起来和闻起来都像原来的函数?在
将其添加到您的
memoized
类中所以它将把
func_...
的属性查找传递给原始函数。在也许您还需要编写一个
__setattr__
函数来拒绝写入这些属性,但是如果您知道您不会尝试更改这些值,那么就没有必要了。在您需要创建一个保持签名的装饰器。最简单的方法是使用库http://pypi.python.org/pypi/decorator,它负责为您保存签名。在
库的内部结构非常丑陋(它使用
exec
!)但它很好地封装了它们。在相关问题 更多 >
编程相关推荐