我试图更改存储的值,但没有成功,while循环完成后,该值将被设置回其原始值,而不是100。
import time
storage = 0
storage_limit = 100
def farm(storage, storage_limit):
while storage < storage_limit:
storage += 1
time.sleep(1)
print(storage)
farm(storage, storage_limit)
print(storage)
这里有一个代码示例,它可以满足您的要求。它使用global
关键字并消除farm()
函数中的storage
参数。
import time
global storage
storage = 0
storage_limit = 100
def farm(storage_limit):
global storage
while storage < storage_limit:
storage += 1
#time.sleep(1)
print(storage)
return storage
farm(storage_limit)
print(storage)
这是另一种方式。它更改farm()
以返回其局部变量storage
的修改值,并更改对farm()
的调用以基于此返回值更新名为storage
的外部作用域中的不同变量。
import time
storage = 0
storage_limit = 100
def farm(storage, storage_limit):
while storage < storage_limit:
storage += 1
#time.sleep(1)
print(storage)
return storage
storage = farm(storage, storage_limit)
print(storage)
import time
global storage
storage = 0
storage_limit = 100
def farm(storage_limit):
global storage
while storage < storage_limit:
storage += 1
time.sleep(1)
print(storage)
return storage
farm(storage_limit)
print(storage)
这就是你要找的吗?如前所述,如果要调整全局变量,则需要引用函数中的全局变量。