我正在python中编写一个类,它将一堆相似的变量组合在一起,然后将它们组装成一个字符串。我希望避免在generateString方法中手动输入每个变量,所以我想使用类似的东西:
for variable in dir(class):
if variable[:1] == '_':
recordString += variable
但是目前它只返回一个包含所有变量名的字符串。有没有办法获得变量的值?
答案 0 :(得分:3)
您可以使用getattr()
function动态访问属性:
recordString += getattr(classobj, variable)
但是,你可能不想在这里使用dir()
。 dir()
为您提供了实例,类和基类的属性列表,而您似乎只想查找直接在对象上找到的属性。
您可以使用vars()
function代替字典,让您使用items()
同时获取名称和值:
for variable, value in vars(classobj).items():
if variable[:1] == '_':
recordString += value