Вопрос исключительно ради любопытства. Это явно недействительный синтаксис:
foo = {}
foo['bar': 'baz']
Очевидно, что произошло, разработчик переместил строку из определения словаря, но не изменил ее из словарного словаря в синтаксис присваивания (и в результате был соответствующим образом изделен).
Но мой вопрос: почему Python поднимает TypeError: unhashable type
здесь, а не SyntaxError
? Какого типа он пытается хешировать? Просто выполните это:
'bar': 'baz'
- это SyntaxError, как это:
['bar': 'baz']
поэтому я не вижу, какой тип создается, который не сотрясается.