Python中的函数名相当于内存地址,内部代码块为储存在内存地址中的字符串,所以一个函数的return值也可以为另一个函数的函数名,将该函数的运行结果赋给另一个变量后,以“变量名(要求的参数)”的形式就可以运行被return的函数。
注意无论在何位置以何种形式调用函数,函数的作用域都只和它被声明时的作用域有关。
几个例子
在return位置放入另一个函数名后调用该函数
def test1():
print("from test1")
def test2():
print("from test2")
return test1
res = test2()
res()
调用位置不影响作用域
name = "YY"
def test1():
name = "MB"
def bar():
name = "Lucky"
print(name)
return bar
res = test1()
res()
name = "YY"
def test1():
name = "Lucky"
def test2():
name = "MB"
def test3():
name = "Alex"
print(name)
return test3
return test2
test1()()()