面试题答案
一键面试def multiply_numbers(a, b=10):
return a * b
Python中参数传递的机制
在Python中,参数传递采用的是“赋值传递”(也叫“对象引用传递”)。
-
不可变对象:当传递像整数、字符串、元组这类不可变对象时,函数接收到的是对象的引用。在函数内部对参数进行修改时,实际上是创建了一个新的对象,而原对象在函数外部保持不变。例如传递一个整数
x = 5
,函数内部修改该参数x = 10
,这只是在函数内部创建了新的整数对象10
,函数外部的x
仍然是5
。 -
可变对象:对于列表、字典等可变对象,函数同样接收到对象的引用。但与不可变对象不同的是,在函数内部对可变对象进行修改,会直接影响到函数外部的对象。例如传递一个列表
my_list = [1, 2, 3]
,在函数内部通过my_list.append(4)
操作,函数外部的my_list
也会变为[1, 2, 3, 4]
。