这是我一直在质疑的事情。如何在运行时创建一个由另一个变量的值命名的变量。因此,例如,代码会要求用户输入字符串。然后将创建一个以该字符串命名的变量,其默认值为“default”。这甚至可能吗?
答案 0 :(得分:4)
有可能,但肯定不建议。您可以作为dict访问全局命名空间(它是内部的dict)并向其添加条目。
如果您正在做一个交互式口译员,比如做数学或其他事情。您实际上会将dict传递给每个eval()或exec,然后您可以将其作为本地命名空间重新使用。
作为一个快速,坏的例子,不要在家里这样做:
g = globals() # get a reference to the globals dict
g[raw_input("Name Please")] = raw_input("Value Please")
print foo
运行它,除非你向第一个提示提供'foo',否则它将追溯。