Какие исключения вы получаете от item.title()
? Голая except
(ужасная практика!) Не говорит нам. Если это ошибка AttributeError (где, например, item
не имеет метода title
),
self.title = getattr(item, 'title', lambda: None)()
может быть одной строкой, которую вы ищете (но производительность не будет чрезвычайно другой, обратите внимание; -).
Редактировать : так как ОП полностью изменил вопрос (первоначально он просто использовал self.title()
, теперь он использует self.title().content.string
, и он специально перехватывает AttributeError
, а не голый except
), предыдущая версия этого ответа, конечно, больше не применяется. Правильный ответ теперь таков: попытка однострочника - абсурдный подход, когда цепочка ссылок на атрибуты & c продолжает расти все дольше (сколько их будет в следующий раз, девять? Поскольку они прыгнули с одного на три при первом редактировании ...; -.)
И без представления о том, какая из многих элементарных операций, выраженная этим длинным, законом Деметры , отбрасывающим цепочку ссылок, может вызвать AttributeError, любая попытка оптимизации тоже будет довольно слепой.