本帖最后由 自然水 于 2017-5-12 23:42 编辑
第一个问题:
fun 函数中的 var 是“局部变量”,咱们用颜色区分:
var = 1314 只在函数fun内生效
函数外 的var =520 全局变量
因为先执行 fun(var) 即 fun(520):
执行过程:
打印 var 即 1314
print(var)就不用解释了了吧?
问题2:
fun1中 先声明了global var ,对 var 变量进行全局操作:
那么函数体外的 var = "Hi" 变成了 var ="Baby"
fun1 的返回值调用的是 fun2(var):
def fun2(var): # 请注意,这里的var就是调用全局的变量
var += 'I love you' 这俩 var 分别对应了 “形参” “实参”
#函数体内的var不是全局变量var(虽然内容一样)
#函数体内的var不是全局变量var(虽然内容一样)
#函数体内的var不是全局变量var(虽然内容一样),
而是 “复制过来的镜像变量“ ,应该可以理解吧?
var += 'I love you' 拼接一下 即 baby i love you
fun2虽然 调用了fun3(var),并在fun3中 对var 又重新赋值了一次,等于”老污龟“
#亲~注意颜色,和上面一样,var 是属于fun3的局部变量,和fun2内的没一毛钱关系。
由于只有fun1(它调用了fun2) 与 fun2 有返回值:所以 打印的是 fun2 里 var的最终结果,即 :var = baby i love you