我正在尝试练习def函数代码如何工作的问题。虽然我相信到目前为止我的程序不正确。这是代码:
def main():
max=0
getMax(1,2,max)
print(max)
def getMax(v1,v2,max):
if (v1>v2):
max=v1
else:
max=v2
main()
这是我通过它的推理。
主函数的执行在 max=0 时开始。下一行初始化了(局部变量? getMax
. v1
替换为 1,v2
替换为 2,max
替换为 0。回到主函数,python 打印max
为 0。这就是输出为 0 的原因。main 函数现在已完成,它将控件返回给其调用方(即 main()
)。我的程序正确吗?让我感到困惑的是,在看到def main()
函数之前,我通常会先看到getMax
(或我认为它被调用的局部变量)。这里的订单重要吗?因为在我看来,在def main
函数中完全忽略了 if 循环。
函数中max
的参数getMax()
获取变量max
main()
的值的副本。 那里的更改不会传播回调用方。