源代码如下:
def fun1():
print('fun1()正在被调用...')
def fun2():
print('fun2()正在被调用...')
fun2() # 不能在外部调用,内嵌函数为局部函数
fun1()
def FunX(x):
def FunY(y):
def FunZ(z):
return x * y * z
return FunZ
return FunY
print(FunX(8)(5)(7))
# 利用列表实现局部变量的调用
def Fun1():
x = [5]
def Fun2():
x[0] *= x[0]
return x[0]
return Fun2() # 返回调用Fun2()函数,return x[0]
print(Fun1())
# 利用 nonlocal 命令符强制声明 x 为非局部变量
def Fun1():
x = 6
def Fun2():
nonlocal x # 强制声明 x 为非局部变量
x *= x
return x
return Fun2()
print(Fun1())
运行结果如下:
fun1()正在被调用...
fun2()正在被调用...
280
25
36