【问题标题】:Use of eval function [duplicate]eval函数的使用[重复]
【发布时间】:2017-08-26 19:37:12
【问题描述】:

我知道函数 eval 执行不带引号的字符串(在参数中)。所以我只是想这样做

x=eval("4*5")  #this works
eval("x=4*5")  #but this doesn't

请告诉我哪里错了!

【问题讨论】:

  • 虽然对此感到好奇是件好事,但使用 eval 或 exec 几乎总是解决问题的错误方法。如果您告诉我们您在更大范围内尝试做什么,我们可以告诉您更好的方法。
  • eval 将表达式作为参数。
  • 是的,我明白了,谢谢。我只是想知道 eval 函数的用法。我认为参数中写的任何内容都会按原样执行。

标签: python python-2.7 python-3.x


【解决方案1】:

使用

exec('x=4*5')

eval 只计算表达式而不是赋值。

【讨论】:

    【解决方案2】:

    4*5 是一个表达式,它的值为20

    x=4*5 不是表达式,也没有值。这是一个语句,意思是它执行一个动作。

    【讨论】:

      【解决方案3】:

      eval() 将其字符串参数作为 python 表达式运行。它评估该表达式的值。它不能与不是表达式的赋值或其他语句一起使用。

      【讨论】:

        【解决方案4】:

        eval函数结构如下:

        eval(expression, globals=None, locals=None)
        

        表达式参数被解析和评估为 Python 表达式。它实际上是一个字符串表达式,而不是一个赋值。

        参考:Here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-01-20
          相关资源
          最近更新 更多