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

标签 python lambda eval

为什么我输入以下内容

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

我认为这是一个错误?怎么回事?

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<string>", line 1
    mult = lambda x,y: (x*y)
         ^
SyntaxError: invalid syntax

我做错了什么?如果我按原样输入表达式(没有 eval),我不会出错,并且可以尽情使用 mult

最佳答案

您想使用 exec而不是评估。我不知道你为什么要这样做,虽然你可以只使用 mult = lambda x,y : (x*y)

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

关于python - 在 eval() 中使用赋值(lambda)时出现语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6367618/

相关文章:

lambda - Java如何使用流映射返回 bool 值

python - 列名中带有空格的 Pandas DataFrame eval

python - Django 支持的站点中的 Unicode

python - 使用 distutilscross 交叉编译 python native C 扩展,setup.py 不会接受 '-x' 参数

python按行中的最后一个字排序,不同长度的行

Python 在读取列表列表时避免 Eval

tcl:eval 和 exec 混淆点

python - 设置 Snowflake converter_class 仍会转换为 Python 数据类型

python - Heroku 迁移导致 : (staticfiles. E001) STATICFILES_DIRS 设置不是元组或列表

c# - 将属性传递给 C#、EF 中的函数