Python3中id和hash内置函数的区别

id内置函数

a = "instance"

print(id(a))  

打印出来的是十进制的内存地址    37570672  

我们要区别的是 

def  func():

      pass

print(func)  

此时打印的是十六进制的内存地址  <function func at 0x0000000002481EE0>

hash内置函数

示例一

print(hash(1234)) # 1234 对于数字的hash值 就是它本身

print(hash("scripts")) # 通过hash算法给b计算出一个数字 -933447000758684308

示例二

hash算法只能计算不可变类型,对于字典的key在计算机中的存储就是通过hash算法后去存储,

如果可变类型,就不可通过hash算法,所以字典的key必须不可变类型

c = []

print(hash(c)) # 此时程序保存,unhashable type: 'list'因为列表类型是可变类型

d = {[]: 123} # 此时程序报错 unhashable type: 'list' 和我们去hash算一个

列表报错是一样的,字典是先给key先哈希然后去存储的




原文地址:https://www.cnblogs.com/wqx851/p/13760791.html