gpt4 book ai didi

python - 为什么这个函数不能正确更新变量?

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:46 26 4
gpt4 key购买 nike

基本上,一旦运行这段代码,程序就会打印 20, 20;然而,我希望它做的是在之前的黄金基础上再增加 20。所以程序应该打印 20, 40。

gold = 0

def display():
calculate(gold)
calculate(gold)

def calculate(gold):
gold += 10
gold = gold + 10
print(gold)

display()

最佳答案

问题是,当您调用 calculate() 时,您传入的是变量 gold 的当前 value,而不是变量本身。

因此,当您在 calculate 中将 10 添加到 gold 时,原始 gold 变量不受影响。这两个变量具有相同的名称,但指向不同的值。下面,我将其中一个命名为 gold2 来阐明这一点。

如果您从 calculate 返回新值,您可以更新外部 gold 变量(即将名称 gold 重新绑定(bind)到一个新的 int对象):

gold = 0

def calculate(gold2):
gold2 = gold2 + 10
return gold2

gold = calculate(gold) # 10
gold = calculate(gold) # 20

关于python - 为什么这个函数不能正确更新变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36272296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com