【问题标题】:Dynamically creating a variable动态创建变量
【发布时间】:2020-02-15 03:14:37
【问题描述】:

我已经尝试在learnpython.org 动态创建一个变量,它可以如下创建:

food = 'bread'
vars()[food] = 'asdasd'
print (bread)

它将打印出“asdasd”。但是,当我尝试使用我的 python3 时,它给了我一个错误(NameError: name 'bread' is not defined)。如何使用 python3 做到这一点?

【问题讨论】:

  • 这可以做到,但它是一个可怕的反模式。如果你必须这样做,通常是设计出了问题。
  • 我无法重现此内容。它对我来说很好。
  • @StefanPochmann 我认为 OP 说他正在使用网站内置的 Python IDE 来运行他的代码。

标签: python python-3.x


【解决方案1】:

在python中我们倾向于避免这种动态变量,但无论如何你的答案是:

a = 'test'
globals()[a] = 123
print(test)

更好的方法是使用字典。

a = 'test'
myVar = {}
myVar[a] = 123
print(myVar['test'])

【讨论】:

  • 目前,我的问题是我需要读取一个 csv 文件并根据用户选择的列,我需要创建一个 var 来存储它。如果我忽略这种动态变量,还有其他方法吗?
  • 方法是将其存储在字典或列表中,并通过密钥访问。
  • 它不起作用。我需要的是我有一个变量 temp1,存储一个值 temp1 = "country" 我想将该国家用作另一个变量的变量,例如:country = "UK"
  • @Djangonewbie 只需使用dict
猜你喜欢
  • 2019-12-10
  • 2021-10-26
  • 2011-10-27
  • 1970-01-01
  • 1970-01-01
  • 2021-12-31
  • 2014-09-02
相关资源
最近更新 更多