Этот код приблизительно эквивалентен dictionary.get(name)
, за исключением того, что в случае поиска несуществующего ключа имя несуществующего ключа также записывается в файл logfile.txt
. Аналогично dict.get
, объект None
будет возвращен функцией в этом случае, и исключение будет не , которое будет повторно вызвано.
Вы можете прояснить ситуацию самостоятельно, экспериментируя в переводчике:
>>> d = {'some_key_which_exists': 'some_value'}
>>> d['some_key_which_exists']
'some_value'
>>> d['some_key_which_does_not_exist']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'some_key_which_does_not_exist'
>>> try:
... d['some_key_which_does_not_exist']
... except Exception as e:
... print '%s\n' % e
...
'some_key_which_does_not_exist'
>>> e
KeyError('some_key_which_does_not_exist',)
- Обратите внимание, что файл перезаписывается, файл не добавляется.