好文档 - 专业文书写作范文服务资料分享网站

python中可hash的对象

天下 分享 时间: 加入收藏 我要投稿 点赞

python中可hash的对象

看核心编程时候有个叫hash的东西,呵呵,打开python文档看看:

hashable(可哈希性)

An object is hashable if it has a hash value which never changes during its lifetime (it needs a

__hash__() method), and can be compared to other objects (it needs an

__eq__() or

__cmp__() method). Hashable objects which compare equal must have the same hash value.

(如果一个对象是可哈希的,那么在它的生存期内必须不可变(需要一个哈希函数),而且可以和其他对象比较(需要比较方法).比较值相同的对象一定有相同的哈希值)

翻译的比较生硬...简单的说就是生存期内可变的对象不可以

哈希,就是说改变时候其id()是不变的.基本就是说列表,字典,集合了.写一段代码验证一下: a= [0,0,0]

b = {1:2,'c':9} c = set(a)

string = 'hello'class A(): pass a = A()

print hash(A)

print hash(a)

print hash(string)print hash(c)

print hash(b)

print hash(a)可以看出列表,字典,集合是无法哈希的,因为他们在改变值的同时却没有改变id,无法由地址定位值的唯一性,因而无法哈希.

python中可hash的对象

python中可hash的对象看核心编程时候有个叫hash的东西,呵呵,打开python文档看看:hashable(可哈希性)Anobjectishashableifithasahashvaluewhichneverchangesduringitslifetime(itneedsa
推荐度:
点击下载文档文档为doc格式
6m3p88opw147ty70kclt55mbv23rb1005bu
领取福利

微信扫码领取福利

微信扫码分享