В полном соответствии с философией “быстрого прекращения” доступ к словарю dict с помощью конструкции d[k] возбуждает исключение, если ключ k отсутствует.
Любой питонист знает об альтернативной конструкции d.get(k, default), которая применяется вместо d[k], если иметь значение по умолчанию удобнее, чем обрабатывать исключение KeyError.
Однако если нужно обновить найденное значение (при условии, что оно изменяемое), то и __getitem__, и get оказываются неудобны и неэффективны.
В примере №1 показан неоптимальный скрипт, демонстрирующий одну ситуацию, когда dict.get – не лучший способ обработки отсутствия ключа. Continue reading
