相关疑难解决方法(0)

为什么Python引发TypeError而不是SyntaxError?

一个纯粹出于好奇心的问题.这显然是无效的语法:

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

37
推荐指数
2
解决办法
1889
查看次数

标签 统计

python ×1