我想在Python中做这样的事情:
a_string = 'variable_name'
print('{0}'.format(variable_name))
也就是说,我想从字符串中提取变量的名称并将其发送到.format()。 我该怎么办?
答案 0 :(得分:4)
一般来说,这不是一个好习惯 - 数据应该是数据,代码应该是代码。当然也有例外 这个一般规则。
要做你想做的事,你可以简单地访问返回的字典
致电vars
:
a_string = 'variable_name'
print('{0}'.format(vars()[variable_name]))
vars
检查本地上下文中的变量可用性(与调用locals()
相同)
回到良好实践:如果您需要字符串来查找程序中的数据,则应检查是否使用字典而不是使用动态名称将此数据直接放在变量中。字典的主要目的之一是允许动态查找数据。
答案 1 :(得分:3)
通常的方法是使用str.format
>>> variable_name = 'hello'
>>> print('{variable_name}'.format(**vars()))
hello
答案 2 :(得分:1)
你可以这样做:
a_string = 'variable_name'
print('{0}'.format(globals()[a_string]))
variable_name = 'hello'
a_string = 'variable_name'
>>> print('{0}'.format(globals()[a_string]))
hello