我试图用 classmethod
装饰一个 functools.lru_cache
。我的尝试失败了:
import functools
class K:
@functools.lru_cache(maxsize=32)
@classmethod
def mthd(i, stryng: str): \
return stryng
obj = K()
错误消息来自
functools.lru_cache
:TypeError: the first argument must be callable
最佳答案
类方法本身是不可调用的。 (可调用的是类方法的 __get__
方法返回的对象。)
因此,您希望将 lru_cache
修饰的函数转换为类方法。
@classmethod
@functools.lru_cache(maxsize=32)
def mthd(cls, stryng: str):
return stryng
关于python - 如何使用 `classmethod` 正确装饰 `functools.lru_cache` ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58649523/