我有一个分配了字符串的变量,并且我想基于该字符串定义一个新变量。
foo = "bar" foo = "something else" # What I actually want is: bar = "something else"
要基于字符串定义一个新变量,你可以使用 globals() 函数来在全局命名空间中动态创建变量。不过,这种做法不太推荐,因为它会导致代码难以阅读和维护。通常,使用字典来存储动态键值对会更好。
globals()
以下是使用 globals() 的方法:
foo = "bar" globals()[foo] = "something else" # 现在,bar 变量被定义了 print(bar) # 输出: something else
或者,你可以使用字典来实现,这样更安全、可维护:
variables = {} foo = "bar" variables[foo] = "something else" # 访问值 print(variables["bar"]) # 输出: something else
使用字典可以动态设置和访问变量,而不会污染全局或局部命名空间,这样可以保持代码的清晰和可理解性。