def fun(x):
x += 1
return x
x = 2
x = fun(x + 1)
print(x)
在函数之外声明的变量,在函数中不能被写入,只能被读取,除非该变量被声明为 全球性 那么这里如何更新x的值呢?
def fun(x):
x += 1 => Adds 1 to the x from the method argument
return x => Returns the new value of x
x = 2
x = fun(x + 1) => Call the function as fun(2 +1) which returns 3 + 1 and assigns to the variable x
print(x) => Prints the latest x value which is 4.
为了进一步说明,让我们在不影响程序结果的情况下,改变一下程序。
def fun(y):
y += 1
return y
x = 2
x = fun(x + 1)
print(x)
这里,在函数内部使用的变量 与调用函数的变量完全不同。
所以,x的值被更新只是因为函数返回了x的更新值,然后将其赋值给x,如x = func(x),这与变量名无关。