嵌套的lambda函数,TypeError:+的不支持的操作数类型:' int'和'功能'

时间:2016-09-23 03:17:20

标签: python-3.x lambda

在调用

时,下面一段代码会出错
a = lambda x : x +( lambda y : y * 30)

--call
a(1)

Traceback (most recent call last):
  File "<pyshell#334>", line 1, in <module>
    a(1)
  File "<pyshell#330>", line 1, in <lambda>
    a = lambda x : x +( lambda y : y * 30)
TypeError: unsupported operand type(s) for +: 'int' and 'function'

有没有办法使用嵌套的lambda实现这一点

1 个答案:

答案 0 :(得分:1)

有点折磨,有点像这样吗?

a = lambda x: 1 + (lambda y: y*30)(x)

如果您在lambda y之外创建并命名lambda x,它会更加清晰,但我想你会称之为作弊。

f = lambda y: y*30
a = lambda x: x + f(x)