哈希值是如何计算的?为什么每次脚本运行时对象的哈希值都会改变?



我刚刚学习了Python中的hash方法,我想知道:对象与其哈希值之间的关系是什么?例如:

>>>hash('a') 
1567799509

python对字符串'a'执行了哪些操作以到达1567799509?我知道这和十六进制有关,但是得到哈希值的公式到底是什么呢?

同时,我运行了以下代码:

a='a'
b="b"
c='c'
print (hash(a))
print(hash (b))
print(hash(c))

我第一次运行代码时得到了这个:

226468662
-199440459
-37886412

我第二次得到这个:

-121857168
-774818061
-915254158

我收到这个第三次了:

1567799509
1439930198
1846375895

我的问题是:哈希值改变吗?如果是,为什么?

哈希函数用于比较会话中的两个对象是否相同。

Return the hash value for the given object.

Two objects that compare equal must also have the same hash value, but the
reverse is not necessarily true.

它只会在同一个python运行会话中返回相同的值。

要在多次运行中获得相同的哈希值,您需要使用此链接提供的hashlib库中的加密哈希值:https://docs.python.org/3/library/hashlib.html?highlight=hashlib

相关内容

  • 没有找到相关文章