函数作用域


"""
函数作用域
"""

name = "alex"
def foo():
name = "cql"
def bar():
print(name)
bar()
foo() # cql


# return 返回一个函数
def test1():
print("test1")
def test():
print("test")
return test1 # 返回一个函数,return可以返回意义东西.
res = test() # 返回一个函数地址
print(res) # 打印函数地址
res() # 调用函数

# 函数作用域和在哪里调用没有关系,和声明的时候有关系
name = "alex"
def foo():
name = "cql"
def bar():
name = "wupeiqi"
print(name)
return bar
res = foo()
res() # wupeiqi

# 函数作用域和在哪里调用没有关系,和声明的时候有关系
name = "alex"
def foo():
name = "lhf"
def bar(): # def 函数定义只是加载到内存,不做任何执行
name = "wupeiqi"
def tt():
print(name) # 变量局部没有,找上一级找,上一级没有,再往上一级找.
return tt
return bar
res = foo()
tt = res()
tt() # wupeiqi
# 另一种运行方式
foo()()() # wupeiqi

原文地址:https://www.cnblogs.com/Windows-phone/p/9729147.html