Python中“hashable”是什么意思?

Python中“hashable”是什么意思?

我试过搜索互联网,但找不到哈希的含义。

当他们说对象是什么hashablehashable objects它是什么意思?


慕标琳琳
浏览 1399回答 3
3回答

拉风的咖菲猫

从Python术语表:如果一个对象具有一个在其生命周期内永远不会改变的哈希值(它需要一个__hash__()方法),并且可以与其他对象(它需要一个__eq__()或多个__cmp__()方法)进行比较,则该对象是可清除的。比较相等的可哈希对象必须具有相同的哈希值。Hashability使对象可用作字典键和set成员,因为这些数据结构在内部使用哈希值。所有Python的不可变内置对象都是可清除的,而没有可变容器(例如列表或字典)。默认情况下,作为用户定义类实例的对象是可清除的; 他们都比较不平等,他们的哈希值是他们的id()。

慕桂英4014372

任何不可变的东西(可变的意思,可能会改变)都可以进行哈希处理。除了要查找的哈希函数,如果一个类有它,例如。dir(tuple)并寻找__hash__方法,这里有一些例子#x = hash(set([1,2])) #set unhashablex = hash(frozenset([1,2])) #hashable#x = hash(([1,2], [2,3])) #tuple of mutable objects, unhashablex = hash((1,2,3)) #tuple of immutable objects, hashable#x = hash()#x = hash({1,2}) #list of mutable objects, unhashable#x = hash([1,2,3]) #list of immutable objects, unhashable不可变类型列表:int, float, decimal, complex, bool, string, tuple, range, frozenset, bytes可变类型列表:list, dict, set, bytearray, user-defined classes
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python