def fun(b):
x=a+1 #1
a=1 #2
return x
a=2
print(fun(a),id(a))
这段代码是错的。
#2处对a进行赋值,说明a是局部变量,那么#1的a就没有值了。
def fun(b):
x=a+1 #1
return x
a=2
print(fun(a),id(a))
这段代码是正确的。#1的a就是2。
——————————————————————————————————
python规定,用变量传递参数时,中间没有改动就是全局变量的值,一旦改动,就会变成局部变量。