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

7、Python-引用传递与值传递
在 Python 中一切皆为对象,类型属于对象,与JAVA不同,Python 中变量是没有确定类型的
在 Python 中都是引用传递
不可变类型
可变类型

a = 2
print(str(id(a)) + "	" + str(a))
print(str(id(b)) + "	" + str(b))

# 140718813537136    2
# 140718813537104    1

7、Python-引用传递与值传递
在 Python 中一切皆为对象,类型属于对象,与JAVA不同,Python 中变量是没有确定类型的
在 Python 中都是引用传递
不可变类型
可变类型

不可变类型,值不可以改变:

  • 数值类型 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]

7、Python-引用传递与值传递
在 Python 中一切皆为对象,类型属于对象,与JAVA不同,Python 中变量是没有确定类型的
在 Python 中都是引用传递
不可变类型
可变类型

a[0] = 2
print(str(id(a)) + "	" + str(a))
print(str(id(b)) + "	" + str(b))

# 2032096469640    [2, 8, 9]
# 2032096469640    [2, 8, 9]

7、Python-引用传递与值传递
在 Python 中一切皆为对象,类型属于对象,与JAVA不同,Python 中变量是没有确定类型的
在 Python 中都是引用传递
不可变类型
可变类型

可变类型,值可以改变:

  • 列表 list
  • 字典 dict