python闭包考试题
时间: 2023-09-05 20:09:54 浏览: 107
python试题
3星 · 编辑精心推荐
好的,下面是一道 Python 闭包的考试题:
```python
def outer_func(x):
def inner_func(y):
return x * y
return inner_func
double = outer_func(2)
triple = outer_func(3)
print(double(5)) # 输出什么?
print(triple(5)) # 输出什么?
```
请问上述代码输出的结果是什么?为什么?
答案:
输出结果是:
```
10
15
```
原因是:
`outer_func` 是一个函数,它接收一个参数 `x`,然后返回一个内部函数 `inner_func`。`inner_func` 接收一个参数 `y`,然后返回 `x * y` 的结果。
在上述代码中,我们分别创建了两个闭包函数 `double` 和 `triple`,它们分别调用了 `outer_func(2)` 和 `outer_func(3)` 得到了不同的 `inner_func`。
当我们调用 `double(5)` 时,实际上是调用了 `inner_func(5)`,其中 `x` 的值为 2。因此,结果为 10。
同样地,当我们调用 `triple(5)` 时,实际上是调用了 `inner_func(5)`,其中 `x` 的值为 3。因此,结果为 15。
阅读全文