0

最近,我一直在使用 Python 语言进行编程。我遇到了尝试将字符串转换为关键字的问题。

假设我使用一个raw_input()短语并将该字符串转换为对象、列表或字典。

例如,我可以将字符串“Foo”转换为 Foo 并将该名称分配给 python 结构。

我该怎么做?

4

2 回答 2

2

你不想这样做,所以不要这样做,而是使用字典:

answer = raw_input("Enter: ") # Let's assume I enter "Foo"
mydict = {answer: raw_input("Enter a value for {} ".format(answer)} Let's say I enter "5"
print mydict.get('Foo')
# 5
于 2013-09-30T01:44:33.810 回答
0

如果您愿意,您可以修改globals字典。

globals()[raw_input()] = None # whatever "structure" you desire.
print foo

上面的代码只有在用户实际输入字符串 'foo' 时才有效。否则它会说NameError: name 'foo' is not defined

但是是的,就像 Haidro 说的那样,无论您尝试这样做是为了什么,都可能是一个愚蠢的想法。

正如@icktoofay 在评论中指出的那样,这仅适用于内置函数的返回值globals()。修改内置函数的返回值locals()实际上不会修改本地命名空间。

于 2013-09-30T01:50:52.137 回答