一个函数内有另外一个函数的声明
def out():
外部函数体
def in():
内部函数体
内部函数只能在外部函数体重中直接调用,在函数外部不可以直接调用内部函数
def out():
print("1")
def inin():
print("2")
print("3")
return inin
a = out()
a()
输出:
1
3
2
内部函数在不被调用时不会执行
在调用外部函数时把内部函数当做返回值返回,才可以在函数外部调用内部函数
当内部函数要对外部函数变量进行修改时,用nonlocal修饰
装饰器:
特殊的闭包:外部函数的返回值是内部函数作用:在不改变原有功能A的基础上,调用A并增加新的功能格式:
def out(参数1): #参数:接收要添加新功能的函数
外部函数体
def inin(*value,**kwargs):#参数,外部函数接收的函数需要的参数
内部函数体
res = 参数1(*value,**kwargs)
return inin
@out() #此时外部函数已经被调用
def my():
def out_add(add1):
print("0