并行的Python:什么是回调?(Parallel Python: What is a callba

2019-07-03 12:31发布

在并行的Python它在调用的 ( 功能的东西文档 ),但是似乎解释的就太多了不。 我前几天贴在他们的论坛,我没有收到回应。 有人会解释什么是回调是什么,它是用来做什么?

谢谢。

Answer 1:

回调是一个API,该API可以再回过头来调用(叫你回来)的消费者提供的功能。 如果我设置一个博士的任命,我可以给他们我的电话号码,这样他们就可以打电话给我前一天确认预约。 回调就是这样,除了而不是仅仅是一个电话号码,就可以像任意指令“发邮件给我这个地址,并且还打电话给我的秘书,并让她把它放在我的日历。

回调通常在一个动作是异步的情况下使用。 如果您需要调用一个函数,并立即继续工作,你不能坐在那里等待其返回值,让你知道发生了什么,所以你提供一个回调。 当该功能是完全做得到它的异步工作,那么它会与一些预定的参数调用回调函数(通常是一些您提供,以及一些关于您请求的异步操作的状态和结果)。

如果医生不在办公室,或者他们仍在工作的时间表,而不是我搁置等到他回来,这可能是几个小时,我们挂断,一旦预约已定,他们打给我。

在这种特殊情况下,并行Python的提交功能,将调用回调你提供任何参数和结果func ,一旦func已执行完毕。



Answer 2:

有关现场的文档:

callback - callback function which will be called with argument 
        list equal to callbackargs+(result,) 
        as soon as calculation is done
callbackargs - additional arguments for callback function

所以,如果你想一些代码,以尽快的结果是准备执行时,你把代码放到一个函数,并传递函数作为callback参数。 如果你不需要其他的参数,这将是公正的,例如:

def itsdone(result):
  print "Done! result=%r" % (result,)
...
submit(..., callback=itsdone)

欲了解更多关于callback的蟒纹,例如见我的介绍在这里 。



Answer 3:

纵观链接,看起来就像一个被称为钩。

回调 - 这将参数列表等于callbackargs +(结果)被调用回调函数,一旦计算完成

该“只要计算完成”似乎有点暧昧。 这一点,据我所看到的这件事情是, submit()调用工作分配给其他服务器,然后返回。 由于整理是异步的,而块,它可以让你提供一个被称为工作结束时一些单元的功能。 如果你这样做:

submit( ..., callback=work_finished, ... )

然后提交将确保work_finished()被调用时分发工作的单位在目标服务器上完成。

当你调用submit()可以提供一个被称为在同一个运行时作为主叫回调 submit() ...,它被称为后完成的工作量函数的分布。

有点像“当你已经做了一些东西,在提交调用了foo(X,Y)()”

但是啊,文档可能会更好。 有公鹅在ppython源,看看此时的回调就是所谓的submit()



Answer 4:

一个回调是你定义后来被你调用一个函数调用的函数。

作为一个例子,考虑AJAX是如何工作的:你写一个调用后端服务器的功能代码。 在未来的某个时候,它从该函数返回(以下简称“A”代表了异步,这是“平行”的“并行的Python”是怎么一回事)。 现在 - 因为你的代码调用服务器上的代码,你想让它告诉你,当它这样做,你想做的事,其结果的东西。 它通过调用回调函数这样做。

当被调用的函数完成后,标准的方式为它告诉你这是做的是你告诉它调用一个函数在你的代码。 这是回调函数,它的工作是处理来自你叫下级函数结果/输出。



Answer 5:

回调是一个简单的功能。 在Python,函数只是多个对象,等等的函数的名称可被用作变量,像这样:

def func():
    ...

something(func)

需要注意的是其接受回调作为参数的许多功能通常需要回调接受某些参数。 在这种情况下,回调函数将需要接受的callbackargs指定的参数列表。 我不熟悉Python的并行,所以我不知道到底是什么就是了。



文章来源: Parallel Python: What is a callback?