Python 中的参数传递机制
Python 的参数传递是传值还是传引用?请用例子解释 Python 的参数传递机制。
回答
专业代码师
Python 采用的是传对象引用(pass-by-object-reference),也称为传赋值(call by assignment)。
- 对可变对象:函数内修改会影响原对象
- 对不可变对象:函数内重新赋值不会影响原对象
def modify(lst, n):
lst.append(4) # 修改原列表
n = 100 # 重新绑定,不影响原变量
a = [1, 2, 3]
b = 10
modify(a, b)
print(a) # [1, 2, 3, 4]
print(b) # 10
本质上:传递的是引用的副本,两个变量指向同一对象,但重新绑定变量不影响另一个。