黑翼大魔 发表于 2018-4-8 13:39:25

彻底晕,局部变量和全局变量的问题

本来自以为还是蛮清晰的,但看了课后练习发觉一笔糊涂账
var = 'hi'
def fun1():
    global var
    var = 'baby'
    return fun2(var)
def fun2(var):
    var += 'ilove you'
    fun3(var)
    return var
def fun3(var):
    var = '小甲鱼'
print(fun1())

为何全局变量var = ‘baby’会进入fun2(var)函数中去,fun2里面并没有定义过global啊,我认为fun2里面的var是局部变量的。这是什么情况呢?

qq4557 发表于 2018-4-8 14:43:31

fun2(var)函数通过形参的形式传进来的var,传进来之后,修改的var变量也是局部的,并不会影响到全局的。

alltolove 发表于 2018-4-8 14:44:50

因为fun1里的返回值,给fun2传参,传的是最顶上的那个全局变量,fun2里面又给传过来的参数修改了

喵叔 发表于 2018-4-8 14:46:07

我把global注释掉了,结果一样。
页: [1]
查看完整版本: 彻底晕,局部变量和全局变量的问题