7、Python-引用传递与值传递

在 Python 中一切皆为对象,类型属于对象,与JAVA不同,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
原文地址:https://www.cnblogs.com/jhxxb/p/10414938.html