7、Python-引用传递与值传递 在 Python 中一切皆为对象,类型属于对象,与JAVA不同,Python 中变量是没有确定类型的 在 Python 中都是引用传递 不可变类型 可变类型
在 Python 中都是引用传递
不可变类型
a = 1 b = a print(str(id(a)) + " " + str(a)) print(str(id(b)) + " " + str(b)) # 140718813537104 1 # 140718813537104 1
a = 2 print(str(id(a)) + " " + str(a)) print(str(id(b)) + " " + str(b)) # 140718813537136 2 # 140718813537104 1
不可变类型,值不可以改变:
- 数值类型 int, long, bool, float
- 字符串 str
- 元组 tuple
可变类型
a = [1, 8, 9] b = a print(str(id(a)) + " " + str(a)) print(str(id(b)) + " " + str(b)) # 2032096469640 [1, 8, 9] # 2032096469640 [1, 8, 9]
a[0] = 2 print(str(id(a)) + " " + str(a)) print(str(id(b)) + " " + str(b)) # 2032096469640 [2, 8, 9] # 2032096469640 [2, 8, 9]
可变类型,值可以改变:
- 列表 list
- 字典 dict