Рассмотрим эту строку:
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]
Какой питонический способ обрабатывать ошибки и назначать значения по умолчанию в этом случае?