python functools包装何时使用它而不使用它

时间:2017-06-30 14:39:17

标签: python

我试着把头包裹在python装饰器周围,所以我借了这个据称最快的memoization implementation

class memoize(dict):
      def __init__(self, func):
          self.func = func
      def __call__(self, *args):
          return self[args]
      def __missing__(self, key):
          result = self[key] = self.func(*key)
          return result

>>> @memoize
... def foo(a, b):
...     return a * b
>>> foo(2, 4)
8
>>> foo
{(2, 4): 8}

一块蛋糕,但后来我才知道functools wraps。医生说:

  

这是一个便利函数,用于在定义包装函数时调用update_wrapper()作为函数装饰器。它等同于partial(update_wrapper,wrapped = wrapped,assigned = assigned,updated = updated)。

何时使用,何时不使用?任何人都可以告诉我如果我使用上面的class memoization使用functools.wraps如何更改它?提前谢谢!

0 个答案:

没有答案