【发布时间】:2022-08-02 12:24:06
【问题描述】:
我对这部分代码感到困惑(我在这里粘贴的是实际代码的简化版本)。
当我运行以下代码时:
def function_1():
apples = 0
apples += 1
print(apples)
while True:
function_1()
而且,结果是:
1 1 1 ...
这对我来说很有意义,while循环每次都会调用该函数,并且apples值设置为0,然后将1添加到apples中,我得到一个结果1。
但是,当我运行这段代码时:
apples = 0
def function_1():
global apples
apples += 1
print(apples)
while True:
function_1()
结果是:
1 2 3 ...
这让我感到困惑,结果不应该与上一个示例中的结果相同吗?每次 while 循环调用函数时,apples 的值应该为 0,只有这次它是全局变量,函数应该检查该值,而不是在函数内部(本地)具有该值。为什么函数每次返回apples = 0时都会增加值?
标签: python-3.x function loops global local