Рассмотрим эту строку:
some_value = lst.attr[idx]
Здесь возможны две ошибки: attr
может не существовать, а idx
может быть вне допустимого диапазона.
Есть ли какой-нибудь элегантный способ сократить это утверждение? В идеале, примерно так:
some_value = lst.attr[idx] or default_value
(Не пытайтесь делать это дома. Это работает только для правильно определенных выражений, которые что-то оценивают.)
Конечно, я могу:
try:
some_value = lst.attr[idx]
except:
some_value = default_value
Но что, если я в контекст задания? Например:
print [x.attr[idx] for x in y]
Какой питонический способ обрабатывать ошибки и назначать значения по умолчанию в этом случае?