Почему значение по умолчанию в dict.get(key[, default])
оценивается, даже если ключ находится в словаре?dict.get() - default arg оценивается даже после успеха
>>> key = 'foo'
>>> a={}
>>> b={key:'bar'}
>>> b.get(key, a[key])
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
b.get(key, a[key])
KeyError: 'foo'
+1 - Дзен python: «Особые случаи не являются достаточно сложными, чтобы нарушать правила». – Sake
+1 zen of python – Doboy
Это должен быть принятый ответ. –