def tim():
    cash = 100
    while cash != 0:
        print("while loop:",cash)
        john(cash)

def john(cash):
    print("john func:",cash)
    cash = cash -1

tim()


有人可以解释为什么john()不会减少现金价值吗?我已经为此苦苦挣扎了很长时间。

最佳答案

函数参数是通过值而不是通过引用传递的,因此在john中分配给变量不会对tim中的变量产生影响。该函数应返回新值:

def tim():
    cash = 100
    while cash != 0:
        print("while loop:",cash)
        cash = john(cash)

def john(cash):
    print("john func:",cash)
    return cash - 1

tim()

关于python - 通过调用另一个函数作为子函数来更改函数中变量的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47191296/

10-10 05:44