一个纯粹出于好奇心的问题.这显然是无效的语法:
foo = {}
foo['bar': 'baz']
Run Code Online (Sandbox Code Playgroud)
很明显发生了什么,开发人员从字典定义中移出一行,但没有将它从文字字典声明更改为赋值语法(并且已经适当地模拟了结果).
但我的问题是,为什么Python会TypeError: unhashable type在这里而不是SyntaxError?它试图散列的是什么类型?这样做:
'bar': 'baz'
Run Code Online (Sandbox Code Playgroud)
是一个SyntaxError,如下所示:
['bar': 'baz']
Run Code Online (Sandbox Code Playgroud)
所以我看不出什么类型的东西是不可用的.
python ×1