按照思路来:
print(fun1())调用了fun1()
fun1中,由于global var,var = 'Baby',相当于外面的这个var = ‘Hi’也被改为了函数中的var。
fun1的返回值为:return fun2(var),即将var作为参数传给函数fun2,并将返回fun2的结果给fun1,所以要调用fun2
fun2的var参数为‘Baby’,然后因为 var += 'I love you'。因为没有设置global,fun2的var = ‘Baby I love you’只适用于fun2中,所以fun2下面的return var的结果就是‘Baby I love you’(意思是fun2(var)的调用结果就是这句话)
然后print(fun1())就是打印fun1的返回值,即fun2(var)
这里要注意的是,此时哪怕在函数体外,var的值已经变成了‘Baby’了