在eval()中使用赋值(lambda)时出现语法错误?

2024-10-01 17:39:21 发布

您现在位置:Python中文网/ 问答频道 /正文

为什么当我键入以下内容时

eval("mult = lambda x,y: (x*y)")

我觉得这是个错误?发生什么事?在

^{pr2}$

我做错什么了?如果我按原样输入表达式(no eval),我没有错误,可以使用mult来表达我的心意。在


Tags: lambdano键入表达式错误evalmultpr2
3条回答

您希望使用exec而不是eval。我不知道你为什么要这样做,尽管你可以使用mult = lambda x,y : (x*y)

>>> exec("mult = lambda x,y : (x*y)")
>>> mult
<function <lambda> at 0x1004ac1b8>
>>> mult(3,6)
18
mult = eval("lambda x,y: (x*y)")

Eval做表达式,不赋值。在

>>> eval("lambda x,y: y*x")
<function <lambda> at 0xb73c779c>
>>> eval("lambda x,y: y*x")(2, 4)
8

必须将求值表达式指定给变量:

^{pr2}$

相关问题 更多 >

    热门问题