这是我的代码:
try:
entry_date = entry.updated_date
except AttributeError:
try:
entry_date = entry.published_date
except AttributeError:
entry_date = manual_parse_from_string(entry)
在这种情况下,我正在解析提要并尝试获取日期。 RSS随附updated_date
,published_date
或字符串格式的日期,需要进一步处理到DateTime对象中。我觉得可以用其他方式完成此操作,例如此伪代码:
entry_date = entry.updated_date
or
entry.published_date or manual_parse_from_string(entry)
这些都不适合我。最好的方法是什么?
答案 0 :(得分:3)
在这种情况下,您可以将getattr与默认值None
一起使用:
entry_date = (getattr(entry, 'updated_date', None)
or getattr(entry, 'published_date', None)
or manual_parse_from_string(entry))
答案 1 :(得分:0)
将您不同的吸气剂均质化为统一的可调用对象,并对其进行迭代:
from operator import attrgetter
getters = attrgetter('updated_date'), attrgetter('published_date'), manual_parse_from_string
for getter in getters:
try:
entry_date = getter(entry)
except AttibuteError:
pass