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先哈希然后去存储的