面试题答案
一键面试以下以一个简单的Python函数add_numbers
为例,来说明函数调用时参数传递、局部变量创建以及函数返回值的执行流程。
def add_numbers(a, b):
result = a + b
return result
-
参数传递: 当调用函数
add_numbers
时,例如add_numbers(3, 5)
,数字3
和5
会被分别传递给函数定义中的参数a
和b
。在Python中,参数传递是“赋值传递”(也常被称为“对象引用传递”),传递的是对象的引用(本质上类似于C++中的指针传递,只是Python对程序员隐藏了指针操作)。这里3
和5
这两个整数对象的引用被分别赋给了参数a
和b
。 -
局部变量创建: 在函数体内部,执行
result = a + b
语句时,会创建一个局部变量result
。这个变量只在函数add_numbers
的作用域内有效。它存储了a
和b
相加的结果,即8
。 -
函数返回值: 当执行到
return result
语句时,函数的执行结束,返回result
的值(即8
)。调用函数的地方会接收到这个返回值,例如:
sum_value = add_numbers(3, 5)
print(sum_value) # 输出 8
在上述代码中,add_numbers(3, 5)
的返回值8
被赋给了变量sum_value
,之后可以对sum_value
进行进一步操作,比如打印它的值。