变量的引用
变量和数据都是保存在内存中的
在python中函数的参数传递以及返回值都是靠引用传递的
在python中
- 变量和数据是分开储存的
- 数据保存在内存中的一个位置
- 变量中保存着数据在内存中的地址
- 变量中记载数据的地址,就叫做引用
- 使用id()函数可以查看变量中保存数据所在的内存地址
注:如果变量已经被定义,当给一个变量赋值的时候,本质上是修改了数据的引用,变量不再对之前的数据引用,变量改为对新赋值的数据引用
可变类型和不可变类型
不可变类型,内存中的数据不允许被修改:
- 数字类型 int,bool,float,complex,long(2,x)
- 字符串str
- 元组tuple
可变类型,内存中的数据可以被修改:
- 列表 list
- 字典 dict
注:字典中的key只能使用不可变类型的数据
可变类型的数据变化,是通过方法来实现的
如果给一个可变类型的变量,赋值了一个新的数据,引用会被修改
- 变量不再对之前的数据引用
- 变量改为对新赋值的数据引用
哈希(hash)
python中内置有一个名字叫做hash(o)的函数
- 接收一个不可变类型的数据作为参数
- 返回结果是一个整数
哈希是一种算法,其作用就是提取数据的特征码(指纹)
- 相同的内容得到相同的结果
- 不同的内容得到不同的结果
在python中,设置字典的键值对时,会首先对key进行hash已决定如何在内存中保存字典的数据,以便后续对字典的操作:增删改查
- 键值对的key必须是不可变类型数据
- 键值对的value可以是任意类型的数据