我有以下代码:
import Parameters
def ReadOptionFromParametersFile(self,variable_name):
if (hasattr(Parameters, str(variable_name))):
return Parameters.variable_name
else:
return 0
我想为不同的变量调用此函数。如果在Parameter
文件上定义了变量,我想读取执行Parameters.variable_name
的值。问题显然是该文件没有名为variable_name
的变量。
我也尝试过:
Parameters.str(variable_name)
或
Parameters.eval(variable_name)
答案 0 :(得分:2)
您可以使用getattr
按字符串名称访问属性:
return getattr(Parameters, variable_name)
事实上,您的整个方法可以重构为:
def ReadOptionFromParametersFile(self, variable_name):
return getattr(Parameters, variable_name, 0)
getattr
的第三个参数是一个可选的默认值,如果找不到该属性则返回。