关于python:获取dir中的变量值(类)

Get the value of variables in dir(class)

本问题已经有最佳答案,请猛点这里访问。

我在用Python编写一个类,将一组相似的变量组合在一起,然后将它们组装成一个字符串。我希望避免在generatestring方法中手动键入每个变量,因此我希望使用如下内容:

1
2
3
for variable in dir(class):
    if variable[:1] == '_':
        recordString += variable

但目前它只返回一个包含所有变量名的字符串。有没有办法得到变量的值?


可以使用getattr()函数动态访问属性:

1
recordString += getattr(classobj, variable)

但是,您可能不想在这里使用dir()dir()为您提供了实例、类和基类上的属性列表,而您似乎只希望找到直接在对象上找到的属性。

您可以使用vars()函数,它返回一个字典,允许您使用items()来获取名称和值:

1
2
3
for variable, value in vars(classobj).items():
    if variable[:1] == '_':
        recordString += value