Python函数参数传递与匹配机制详解
1. Python参数传递基础
在Python中,参数传递模型与C++的引用传递有所不同,但与C语言及其类似语言的参数传递模型较为接近。具体来说,参数传递分为不可变对象和可变对象两种情况:
- 不可变对象(如整数、字符串) :通过值传递。实际上是传递对象的引用而非复制对象,但由于不可变对象无法在原地修改,效果就如同复制了一份。例如:
def f(a):
a = 99
b = 88
f(b)
print(b) # 输出88
在这个例子中,调用 f(b) 时,变量 a 被赋值为对象 88 ,但 a 仅存在于函数内部。函数内对 a 的修改不会影响调用处的 b ,只是将局部变量 a 指向了另一个对象。
- 可变对象(如列表、字典) :通过指针传递,即传递对象的引用,类似于C语言中以指针形式传递数组。可变对象可以在函数内部原地修改。例如:
def changer(a, b):
a = 2
b[0] = 'mielonka'
X = 1
L = [1, 2]
changer(X, L)
print(X, L) # 输出(1, ['mielonka', 2])
超级会员免费看
订阅专栏 解锁全文
997

被折叠的 条评论
为什么被折叠?



