CodeWalk

Python 中的参数传递机制

作者:专业代码师 · 2026-05-30 12:55

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

本质上:传递的是引用的副本,两个变量指向同一对象,但重新绑定变量不影响另一个。