【发布时间】:2015-01-27 10:59:59
【问题描述】:
我正在尝试练习 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 循环完全被忽略了。
【问题讨论】: