Python-如何快速从对象中提取几个属性?

问题描述 投票:0回答:1

我有一个专有的job对象,该对象具有多个非方法字符串属性,我希望能够将这些属性有效地编译到列表中。 job对象的属性TAGS包含我要为其编译值的属性名称的完整列表,但没有用于仅提取值的方法。我正在寻找一种方法来利用TAGS列表有效地提取所有需要的字符串属性。

>>> job_object.TAGS
('date', 'id', 'name', 'state', 'starttime', 'endtime', 'runs', ...) # There are 9 in all

我可以单独提取属性,但是我想有一个高效的实现,而不是硬编码,以防万一TAGS发生变化。

>>> job_object.id
'1426013702'

我尝试使用exec,但它当然不会返回任何内容。

>>> [exec('job_object.{}'.format(tag)) for tag in job_object.TAGS]
[None, None, None, None, None, None, None, None, None, None, None, None, None]

还有另一种方法来拉这些而不显式调用每个属性吗?

python attributes exec
1个回答
0
投票
但是,这似乎起作用:

print([getattr(job_object, tag) for tag in job_object.TAGS])

但是,我只是查看了exec()的文档,它总是返回None

© www.soinside.com 2019 - 2024. All rights reserved.