【发布时间】:2021-10-28 01:30:43
【问题描述】:
假设我们要创建一个回调函数,它将两个数字 arg1 和 arg2 相加。这可以通过返回一个函数引用来完成,如下所示:
def add(arg1, arg2):
return arg1 + arg2
def partial(f, arg1, arg2):
def wrapper():
return f(arg1, arg2)
return wrapper
callback = partial(add, 2, 4)
print(callback())
Output: 6
wrapper 如何记住arg1 和arg2?我们用return wrapper 真正返回了什么?似乎不仅是返回的函数代码的一部分,而且还有它的环境(在这种情况下,变量定义在wrapper 之前)。否则会有NameError。
【问题讨论】:
-
关键字是closure。
-
检查zetcode.com/python/python-closures。这里的代码和你的几乎一样
标签: python function callback nested partials