如何使用字符串访问类变量?

时间:2015-02-19 19:29:42

标签: python string python-import

我有以下代码:

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)

1 个答案:

答案 0 :(得分:2)

您可以使用getattr按字符串名称访问属性:

return getattr(Parameters, variable_name)

事实上,您的整个方法可以重构为:

def ReadOptionFromParametersFile(self, variable_name):
    return getattr(Parameters, variable_name, 0)

getattr的第三个参数是一个可选的默认值,如果找不到该属性则返回。