class TestClass(object):
aa = lambda x: 35
def __init__(self):
self.k = self.aa()
o = TestClass()
print o.k
这给了我 35,我明白为什么。
但是这个:
class TestClass(object):
@classmethod
aa = lambda x: 35
print type(aa)
def __init__(self):
self.k = TestClass.aa()
o = TestClass()
print o.k
这给了我
File "test1.py", line 3
aa = lambda x: 35
^
SyntaxError: invalid syntax
为什么会这样?
请您参考如下方法:
装饰器仅在语法上对 def 和 class 语句有效。但是装饰器语法只是以装饰函数(或类)作为参数调用装饰器的简写,因此您可以通过以下方式获得相同的结果:
class TestClass(object):
aa = classmethod(lambda x: 35)
# etc.
