Встречается на собеседованиях • сегодня

Какие есть альтернативы object.get

В Python есть несколько способов безопасного доступа к атрибутам словаря или объекта, помимо object.get():

  1. dict.setdefault(key, default) - возвращает значение ключа, если он есть, иначе устанавливает ключ с default значением и возвращает его:
python
d = {'a': 1}
val = d.setdefault('b', 2)  # val = 2, d = {'a': 1, 'b': 2}
  1. collections.defaultdict - словарь с дефолтным значением для отсутствующих ключей:
python
from collections import defaultdict
dd = defaultdict(int)
val = dd['missing']  # 0
  1. Оператор := (walrus) + проверка:
python
if (val := d.get('key')) is not None:
    # обработка val
  1. try/except для обработки KeyError:
python
try:
    val = d['missing']
except KeyError:
    val = None
  1. hasattr() для объектов:
python
if hasattr(obj, 'attr'):
    val = obj.attr

Выбор зависит от контекста - нужна ли запись дефолтного значения, обработка исключений или просто проверка.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы