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

How to acces to a class variable with a string?

我有以下代码:

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)

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

return getattr(Parameters, variable_name)

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

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

如果未找到属性,getattr 的第三个参数是 return 的可选默认值。