【问题标题】:Modifying a Variables Value from a string with the variables name [duplicate]从具有变量名称的字符串修改变量值[重复]
【发布时间】:2022-01-01 21:00:37
【问题描述】:

如果我有以下代码:

random_variable = "Hello World"
new_value = "It Works!"

我有这样的事情:

def set_variable_value(var_name, new_value):
    // Code here
    pass

是否可以有一个像上面那样的函数,其中var_name 是一个字符串?它应该采用var_name 并找到一个名为字符串值的变量,并将该值更改为 new_value 的值。

如果这是一个愚蠢的问题,我很抱歉,我现在在网上搜索了一段时间,并没有发现与我的问题相关的任何内容。 (谷歌像往常一样没用)

谢谢

【问题讨论】:

  • 你需要一本字典。 my_data = {"random_variable": "Old value"} ...
  • 不要动态修改变量名,这给你带来比你想象中更多的麻烦

标签: python python-3.x variables


【解决方案1】:

你可以这样做:

def set_variable_value(var_name, new_value):
    globals()[var_name] = new_value

但是,这可以被认为是一种反模式。考虑改用字典并将值用作my_dictionary[some_string]

【讨论】:

  • 请不要建议这样做,它会产生许多意想不到的后果,应避免用于任何一般用例。
  • 好吧...我不想使用字典...我的意思是...它可以工作...为什么不呢
  • @Eric 因为你应该避免使用很好理解的反模式
  • @Eric 请注意,您实际上正在使用字典,只是该字典恰好是全局命名空间。
  • 哦...在那种情况下...好吧
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-24
  • 1970-01-01
  • 1970-01-01
  • 2019-07-03
  • 1970-01-01
  • 2012-07-18
相关资源
最近更新 更多