也许我得到这个完全错误,但我遇到了lambda调用@classmethod一些奇怪的问题。lambda致电@classmethod失败
我有下面的类:
class MyClass:
LAMBDA = lambda: MyClass.ClassMethod()
@classmethod
def ClassMethod(cls):
pass
但每当LAMBDA被调用失败:
TypeError: unbound method <lambda>() must be called with MyClass instance as first argument (got nothing instead)
我真的不明白为什么会这样。我已经花了一些时间来努力工作。我需要一些由lambda填充的类属性,并且在该阶段自引用类显然是不可能的。
仅供参考,它适用于Python 3,但不适用于Python 2. – kennytm 2010-07-07 17:22:43
@KennyTM,它适用于Python 3。 Python 3摆脱了绑定方法,只是返回函数本身。虽然这是一个很好的设计决定,但从概念上讲,最好用它来制造假静态方法。 – 2010-07-07 17:38:16