首页 > 试题广场 > 当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个
[单选题]

当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包,以下代码输出值为:

def adder(x):
    def
wrapper(y):
   
    return x + y
   
return wrapper
adder5 = adder(5)
print(adder5(adder5(6)))

  • 10
  • 12
  • 14
  • 16
1. 如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。
2. 在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。
3. 一般情况下,如果一个函数结束,函数的内部所有东西都会释放掉,还给内存,局部变量都会消失。但是闭包是一种特殊情况,如果外函数在结束的时候发现有自己的临时变量将来会在内部函数中用到,就把这个临时变量绑定给了内部函数,然后自己再结束。

具体就是5+6+5=16

发表于 2019-07-03 19:55:30 回复(0)
如题:当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包
整理格式后,运行如下:
def adder(x):
    def wrapper(y):
    
        return x + y
    
    return wrapper
adder5 = adder(5)
print(adder5(adder5(6)))
print(adder5(6))
print(adder5(1))
print(adder5(2))
---------------------------------
16
11
6
7
发表于 2019-07-03 11:41:29 回复(0)
因为wrapper是闭包 所以adder5返回的是wrapper函数 接下来adder5(6) 返回的是11=5+6 同理 再调用一次就是16 = 11+5
发表于 2019-06-09 10:47:41 回复(0)