本帖最后由 vallenshao 于 2020-2-27 01:42 编辑
global的意义不是说不能被修改。
在fun1的里面,global var,此时var已经国际化了,但是不代表不能被修改。
下一行,var ='baby',也就是说你把这个全局var赋值成了Baby,此时在函数里面和外面,var就会等于Baby了。
可以这样理解
var = 'Hi'
def fun1():
global var #此时fun1没有输入任何参数,但是外部var的值已经传入进来了,而且var已经不仅仅属于这个函数,而是属于整个范围。
var = 'baby' #此时var按照上面这样,已经属于这个范围,而且值是'baby'
为了更好帮助i理解,我给你看一下区别。
def fun2():
global var
var = '111'
fun2()
print(var) #此时能打印出var出来,哪怕在函数外面也能打印函数里面,如果不是global var,在函数外面print(var)就会报错。
如果你想打印 Hi I love you,只需要把你代码作如下修改
var = ' Hi '
def fun1():
global var
var = ' Baby ' #把这行删掉就可以了,也就是var我不赋值,我把外面的hi直接带进来
return fun2(var)
def fun2(var):
var += 'I love you'
fun3(var)
return var
def fun3(var):
var = ' 小甲鱼 '
print(fun1())