1

我想根据字符串中的解析来命名我的变量。基于解析字符串的变量名称

例如: 如果解析字符串==“狗”: 我的变量名应等于狗和它的价值字符串“狗”

+0

你可以在PHP中做到这一点(它们被称为变量变量),但我从来没有听说过Python 。也许会搜索这个词。 – 2012-04-24 02:17:04

回答

1

This answer,告知符号表中的蟒蛇有助于直接回答这个问题:

>>> varname = 'spam' 
>>> value = 'eggs' 
>>> locals() 
{'__builtins__': <module 'builtins' (built-in)>, 'varname': 'spam', 'value': 'eggs', '__package__': None, '__name__': '__main__', '__doc__': None} 
>>> locals()[varname] = value 
>>> locals() 
{'__builtins__': <module 'builtins' (built-in)>, 'varname': 'spam', 'spam': 'eggs', 'value': 'eggs', '__package__': None, '__name__': '__main__', '__doc__': None} 
>>> print(spam) 
some value 

locals()提供本地可见的变量的dict。通过修改字典,您可以更改并创建新变量。 Python documentation here

还有一个对应的globals()来访问全局可见变量。了解变量的范围,请参阅this part of the python documentation

在上述情况下,globals()产生一个dict具有相同的内容,因为在这种情况下,本地范围是全局的。在课堂内部,你会看到不同的内容,你必须决定是否要修改本地范围或全局范围。

但是,除非你知道你在做什么,否则这样做可能不是一个好主意。你可以创建一个自定义类的对象,它具有一个名称属性 - 取决于你打算做什么