使用 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']?