Python中的hash()函数是干什么的?

1 个回答|154 次阅读
Coco老师 - 公众号:量位学堂Qbit编程
擅长:编程教育

描述:返回对象的哈希值

语法:hash(object)

参数:object -- 对象;

案例:

hash() 函数可以应用于数字、字符串和对象,不能直接应用于 list、set、dictionary
在 hash() 对对象使用时,所得的结果不仅和对象的内容有关,还和对象的 id(),也就是内存地址有关。
class Test:    
def __init__(self, i):       
self.i = ifor i in range(10):  
t = Test(1)    
print(hash(t), id(t))    
hash(point1)16294976hash('返回对象的哈希值')4919828709165481160hash()
 函数的用途hash() 函数的对象字符不管有多长,返回的 hash 值都是固定长度的,
 也用于校验程序在传输过程中是否被第三方(木马)修改,
 如果程序(字符)在传输过程中被修改hash值即发生变化,
 如果没有被修改,则 hash 值和原始的 hash 值吻合,
 只要验证 hash 值是否匹配即可验证程序是否带木马(病毒)。
  name1='正常程序代码'name2='正常程序代码带病毒' print(hash(name1)) 
  # -3048480827538126659print(hash(name2)) # -9065726187242961328