使用 globals() 分配字符串、整数等可以正常工作:
>>> 全局变量()
{'__builtins__': , '__name__': '__main__', '__doc__': 无, '__package__': 无}
>>> globals()["a"] = 5
>>> 一个
5
>>> 全局变量()
{'__builtins__': , '__name__': '__main__', '__doc__': 无, 'a': 5, '__package__': 无}
但是,尝试分配给字典失败:
>>> globals()["b['c']"] = 5
>>> 全局变量()
{'a': 5, "b['c']": 5, '__builtins__': , '__package__': 无, '__name__': '__main__', '__doc__': 无}
>>> b['c']
回溯(最近一次通话最后):
文件“”,第 1 行,在
NameError:未定义名称“b”
即使“b”已经定义为字典也是如此。
那么,给定一个文本字符串,例如“b['c']”,我该如何分配 b['c']?