python 函数的参数传递:
-
实参为不可变类型:类似 c++ 的值传递,如 数字型、字符串、元组。如fun(a),传递的只是a的值,没有影响a对象本身。比如在 fun(a)内部修改 a 的值,只是修改另一个复制的对象,不会影响 a 本身。
-
实参为可变类型:类似 c++ 的引用传递,如 列表,字典,集合。如 fun(la),则是将 la引用的对象传过去,修改后fun外部的la也会受影响
# 实参为不可变数据类型
def test(s):
s = "hi"
s = "hello"
print(s)
test(s)
print(s)
## 运行结果:
hello
hello
# 实参为不可变数据类型
def test(L):
L.append("user02")
L = ["user01"]
print(L)
test(L)
print(L)
## 运行结果:
['user01']
['user01', 'user02']
python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。