【发布时间】:2020-01-15 21:05:12
【问题描述】:
我有一个专有的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]
还有其他方法可以在不显式调用每个属性的情况下提取这些属性吗?
【问题讨论】:
-
你能编辑 job_object 的类吗?你能加一个
def __str__(self): return list_of_desired_tags
标签: python attributes exec