|
发表于 2021-12-30 16:41:40
|
显示全部楼层
本楼为最佳答案
- var = ' Hi '
- def fun1():
- global var #定义了全局变量
- var = ' Baby ' #重新赋值var,这时候var就不是'Hi'了
- return fun2(var) #这里相当于调用函数fun2(var='Baby')
- def fun2(var): #fun2(var='Baby')
- var += 'I love you' #由于fun2()函数里没有通过全局变量var,所以这里的var是fun2()的局部变量,但‘Baby’是上面传的参数。
- #这时,fun2()局部变量var=‘Baby I love you’
- def fun3(var): #fun3(var=‘Baby I love you’,)
- v = ' 小甲鱼 ' #fun3()虽调用了,但是fun3()函数对fun2()的局部变量var没任何操作。
- return v #返回的也和var没点关系
- fun3(var) #上面说了
- return var #所以这里返回的是fun2()的局部变量var
- print(fun1())
- #如果你在这里打印下var,可以看到var = 'Baby'
- print(var)
复制代码
给你提个简单方法,你在关键位置插入个print(var)查看下var在这个变量在函数某个位置时的状态。
如果你用的pycharm你可以用调试看,这就更方便了。 |
|