gpt4 book ai didi

python - 在 python 中定义 @classmethod lambda

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:18 25 4
gpt4 key购买 nike

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

为什么会这样?

最佳答案

装饰器仅在语法上对 defclass 语句有效。但是装饰器语法只是以装饰函数(或类)作为参数调用装饰器的简写,因此您可以通过以下方式获得相同的结果:

class TestClass(object):
aa = classmethod(lambda x: 35)
# etc.

关于python - 在 python 中定义 @classmethod lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45019193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com