Python 中的 Tuple[Hashable] 是什么意思?

tra*_*veh 4 python type-hinting python-typing

我遇到了以下代码:

def func(self, v: Tuple[Hashable]):
...
Run Code Online (Sandbox Code Playgroud)

我知道v: Tuple这意味着变量 v 必须是 Tuple 类型,但这Tuple[Hashable]意味着什么?Python 中的元组不是总是可哈希的吗?

che*_*ner 7

仅当元组中的值本身可哈希时,元组才可哈希。

>>> hash((1,2))
-3550055125485641917
>>> hash(([1],2))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
Run Code Online (Sandbox Code Playgroud)

  • 不,元素可散列的元组将是“Tuple[Hashable, ...]”。“Tuple[Hashable]”是具有“恰好一个”元素的元组的类型提示,该元素必须是可哈希的。 (3认同)