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/