a = 1 print("a的内存地址是:%d" % id(a)) b = 2 print("b的内存地址是:%d" % id(b)) c = 2 print("c的内存地址是:%d" % id(c)) 1.3 函数的参数和返回值的传递
在 Python 中,函数的 实参/返回值 都是是靠 引用 来传递来的,写了小的例子尝试下:
def test(num): print("-" * 50) print("%d 在函数中的内存地址是 %d" % (num, id(num))) result = 12 print("返回值 %d 在内存中的地址是 %d" % (result, id(result))) print("-" * 50) return result n = 100 print("%d在调用之前的内存地址是%d" % (n, id(n))) r = test(n) print("调用函数后,实参 %d 的内存地址是 %d" % (n, id(n))) print("调用函数后,返回值 %d 的内存地址是 %d" % (r, id(r)))2. 可变和不可变类型
- 不可变类型,内存中的数据不允许被修改:
- 数字类型
int,bool,float,complex,long(2.x) - 字符串
str - 元组
tuple
- 数字类型
- 可变类型,内存中的数据可以被修改:
- 列表
list - 字典
dict
- 列表
注意
- 可变类型的数据变化,是通过 方法 来实现的
- 如果给一个可变类型的变量,赋值了一个新的数据,引用会修改
- 变量 不再 对之前的数据引用
- 变量 改为 对新赋值的数据引用
哈希 (hash)
Python中内置有一个名字叫做hash(o)的函数- 接收一个 不可变类型 的数据作为 参数
- 返回 结果是一个 整数

