函数作用域

##
# name = 'alex'
# def foo():
# name = 'second'
# def bar():
# name = 'signal'
# print(name)
# return bar #返回bar的地址
#
# a = foo() #foo()执行之后,返回的是bar()的地址
# print(a) #把地址赋值给a,然后输出 ;可以利用这种方式运行内部函数
# a() #运行bar ,输出signal
#
# foo()() #等价于a=foo(),a(),就是运行bar()
# print('--------------end-------')
#
##
# name = 'alex'
# def foo():
# name = 'one'
# def bar():
# name = 'two'
# def tt():
# print(name)
# return tt #返回tt的地址
# return bar #返回bar的地址
#
# foo() #运行foo(),返回的是bar的地址
# a = foo() #将返回的bar地址赋值给a
# print(a) #输出bar的地址
# a() #通过bar返回的地址加上括号,来运行,即运行bar()
#
# b = a() #返回的是tt的地址
# b() #相当于运行tt(),输出two
# #等价于
# foo()()()

原文地址:https://www.cnblogs.com/shadowfolk/p/14480311.html