var = ' Hi '          #定义全局变量var
def fun1():
    global var      #定义函数内的var为全局变量
    var = ' Baby '    #此时全局变量的值已修改为' Baby '
    return fun2(var)  #把全局变量(值为' Baby ')作为参数传入调用fun2()函数,并将执行结果返回,也就是返回 fun2(' Baby ') 的返回值,此时返回“Baby I love you”
def fun2(var):          #参数' Baby '传入函数内的局部变量var
    var += 'I love you'   #执行后函数2内的局部变量值为“Baby I love you”,全局变量仍然为' Baby '
    fun3(var)          #返回fun3(“Baby I love you”)的执行结果,返回了None
    return var         #此时函数返回“Baby I love you”,也就是fun2(' Baby ')
返回“Baby I love you”
def fun3(var):          #参数“Baby I love you”传入函数内的局部变量var
    var = ' 小甲鱼 '   #执行后函数3内局部变量值为' 小甲鱼 ',全局变量仍然为' Baby '
                    #这个程序没有返回值,也就是返回None,不信可以看后面的运行结果
print(fun1())   #打印fun1()函数的返回值,返回的是“Baby I love you”,全局变量仍然为Baby
查看执行结果并验证分析是否正确:
>>> print(fun3("Baby I love you"))
None
>>> print(fun2("Baby"))
BabyI love you
>>> var
' Baby '