【问题标题】:How to get the value of a variable by executing a string? [duplicate]如何通过执行字符串来获取变量的值? [复制]
【发布时间】:2018-07-02 09:46:07
【问题描述】:

我有以下代码:

a=2
string="a"
b=exec(string)
print(b)

输出:

None

我希望 b 具有 'a' 的值,即 2 我该怎么做?

【问题讨论】:

  • 你能扩展一下上下文吗?你为什么要这样做?
  • 实际上名称'a'是我从文件中获得的输入。考虑到我有很多变量,我想将'b'分配给从文件中获得的值。
  • 那么你真正想要的是一个字典{"a": 2}["a"] == 2.

标签: python string python-3.x exec


【解决方案1】:

如果我正确理解你的情况,你想在现有变量的上下文中从字符串评估一些 python 源。 内置的eval 函数可以用于此。

a=2
string="a"
b=eval(string)
print(b)

无论如何。你为什么需要那个?肯定有更好的方法来做到这一点。

在您的情况下,您可能可以使用字典来记住值而不是单独的变量。从文件中读取“名称”后,使用此名称作为字典键。

your_dict = {}
your_dict["a"] = 2
string = "a"
b = your_dict[string]
print(b)

【讨论】:

    【解决方案2】:
    a=2
    string="b=a"
    exec(string)
    print(b)
    

    exec() 只是执行给定字符串中的代码,因此必须在字符串本身中完成赋值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-18
      • 2020-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-20
      相关资源
      最近更新 更多