【发布时间】:2014-06-16 16:27:51
【问题描述】:
阅读文档
object.__hash__(self)由内置函数
hash()调用,用于对散列集合成员(包括 set、frozenset 和 dict)的操作。 [...]
和....
Python 的所有不可变内置对象都是可散列的,而没有可变容器(例如列表或字典)是可散列的。
从控制台:
>>> a = {'name': 'abcdef'}
>>> hash(a)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'dict'
由此我明白 dict 对象是不可散列的,那么为什么文档说我可以在 dict 对象上调用散列函数?
【问题讨论】:
-
散列集合的成员,然后是散列集合的示例。
set、frozenset和dict是散列集合,而不是此类散列集合的成员。文档告诉你hash()在这里 for 的用途。
标签: python python-3.x dictionary