Python2.7.10
我编写了以下代码来测试一个简单的回调函数。
def callback(a, b):
print('Sum = {0}'.format(a+b))
def main(callback=None):
print('Add any two digits.')
if callback != None:
callback
main(callback(1, 2))
我在执行时收到:
Sum = 3
Add any two digits.
为什么Add any two digits
在Sum = 3
之后?我想是因为回调函数首先执行。如何在main()
中的所有其他代码执行后执行回调函数?
你想做的是:
callback
自己什么也做不了。它接受参数。首先执行
callback(1, 2)
的操作将调用该函数,从而打印Sum = 3
。由于
callback
不返回显式值,因此它将作为None
返回,因此您的代码相当于您可以尝试先不调用函数,而只是传递其句柄。
如注释中所述,只要回调的后缀是open和close parens,它就会被调用;因此,当您传递回调时,它就会被调用。
您可能需要使用lambda并传入值。
相关问题 更多 >
编程相关推荐