内部函数:在函数内部声明的函数 其本质就是局部变量
def 函数名():
局部变量...
def 内部函数名():
Python功能代码...
闭包: 使用特定或特殊的方式 将局部变量引入到全局环境中使用
法1:
def function_mode():
a = [1, 2, 3, 4, 5]
def func():
print('-----1-----')
def inner():
b=[6,7,8]
c=[a,b,func]
return c
return inner
a=function_mode()()
print(a)
a[-1]()
运行结果:
[[1, 2, 3, 4, 5], [6, 7, 8], <function function_mode.<locals>.func at 0x02B8C810>]
-----1-----
法2:
def function_mode():
a = [1, 2, 3, 4, 5]
def func():
print('-----1-----')
def inner():
b=[6,7,8]
return [a,func,inner]
a=function_mode()
print(a)
a[1]()
运行结果:
[[1, 2, 3, 4, 5], <function function_mode.<locals>.func at 0x03DEC810>, <function function_mode.<locals>.inner at 0x05AA3078>]
-----1-----