Aber 发表于 2020-6-2 12:49:35

019课后作业,全局变量与局部变量的关系问题。

def fun(var):
    var = 1314
    print(var, end='---')

var = 520
fun(var)
print(var)


第5行代码不是给var = 520了吗?这不是定义全局变量吗?还是说跟fun()函数里面的局部变量var = 1314没有什么关系,只是把1314 跟520两个值都贴在var标签上,并不是对fun()函数里面的局部变量修改。如果想修改局部变量应该不是这样操作吧?我还没有学到那里。{:10_277:}

小甲鱼的铁粉 发表于 2020-6-2 12:53:29

额,我也不会

老八秘制 发表于 2020-6-2 12:53:31

函数内和函数外的变量虽然名字一样,但是是两个不同的变量,要在函数里面
global var
或者
nonlocal var
才能设置全局变量

Aber 发表于 2020-6-2 12:56:11

小甲鱼的铁粉 发表于 2020-6-2 12:53
额,我也不会

{:10_277:}

Aber 发表于 2020-6-2 12:58:11

老八秘制 发表于 2020-6-2 12:53
函数内和函数外的变量虽然名字一样,但是是两个不同的变量,要在函数里面

或者


emmm
还没有学到那里,不太能理解global var的作用,我在往后学学看

老八秘制 发表于 2020-6-2 12:59:46

给个最佳吧{:10_297:}

Twilight6 发表于 2020-6-2 13:04:52

第5行代码不是给var = 520了吗?这不是定义全局变量吗?
定义全局变量没错
还是说跟fun()函数里面的局部变量var = 1314没有什么关系
是的 没关系
并不是对fun()函数里面的局部变量修改
没错
如果想修改局部变量应该不是这样操作吧?
对的学到后面会学 global 声明变量不是局部变量的

Aber 发表于 2020-6-2 13:55:49

Twilight6 发表于 2020-6-2 13:04
定义全局变量没错

是的 没关系


嗯嗯,我明白了,其实就是被print(var,end="")误导了,如果删了end="" 其实也很好理解了,fun(var)还有print(var)只不是两个步骤。
页: [1]
查看完整版本: 019课后作业,全局变量与局部变量的关系问题。