基本上,运行此代码后,程序将打印20、20;否则,程序将显示20、20。而我想做的是在之前的黄金中再增加20个。因此程序应打印20、40。

gold = 0

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

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

display()

最佳答案

看来您的目标是:

gold = 0

def display():
    calculate()
    calculate()

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

display()


由于gold在这里是全局变量,因此您无需将其作为参数显式传递给calculate

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

10-12 21:43