通过将另一个函数作为子函数调用来改变函数中的变量值

时间:2017-11-08 23:11:21

标签: python python-3.x function loops while-loop

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

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

tim()

有人可以解释为什么约翰()不会降低现金​​的价值?我一直在努力解决这个问题。

1 个答案:

答案 0 :(得分:2)

函数参数按值传递,而不是按引用传递,因此分配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()