Python如何根据用户输入的变量名获取对应变量值?
问题描述
需要实现根据用户输入的字符串指定要使用的变量,现有Python代码如下:
general_string = "this is just general string" user_specfic_string = "this is user string" def relevant_string_to_print(user_string): relevant_string = "" if user_string in vars(): #此处逻辑不确定 else: relevant_string = general_string print(relevant_string) relevant_string_to_print("user_specfic_string") relevant_string_to_print("arbitrary_string")
期望输出:
this is user string this is just general string
解决方案
利用vars()函数返回的当前作用域变量字典,通过键名(用户输入的字符串)直接获取对应变量的值即可。完善后的代码如下:
general_string = "this is just general string" user_specfic_string = "this is user string" def relevant_string_to_print(user_string): relevant_string = "" if user_string in vars(): # 通过变量名字符串获取对应变量的值 relevant_string = vars()[user_string] else: relevant_string = general_string print(relevant_string) relevant_string_to_print("user_specfic_string") relevant_string_to_print("arbitrary_string")
关键说明
vars()在全局作用域调用时,会返回包含所有全局变量的字典,其中键是变量名的字符串形式,值是变量对应的内容。- 当用户输入的字符串存在于
vars()的键集合中时,通过字典取值操作vars()[user_string]拿到目标变量的内容;不存在则使用默认的general_string。
内容的提问来源于stack exchange,提问作者amit
相关产品推荐
相关产品推荐

