병렬 파이썬 : 콜백이란 무엇입니까?
-
19-09-2019 - |
해결책
콜백은 API 소비자가 제공 한 기능으로 API가 돌아서 호출 할 수 있습니다 (다시 전화). Dr.의 약속을 설정하면 전화 번호를 줄 수 있으므로 약속을 확인하기 위해 전날 전화 할 수 있습니다. 콜백은 전화 번호가 아닌 것을 제외하고는 "이 주소로 이메일을 보내고 내 비서에게 전화하여 내 캘린더에 넣게 할 수있는 임의의 지침 일 수 있습니다.
콜백은 종종 동작이 비동기식 인 상황에서 사용됩니다. 함수를 호출해야하고 즉시 계속 일하는 경우 반품 값을 기다릴 수 없을 때까지 기다릴 수 없으므로 콜백을 제공합니다. 함수가 완전히 수행되면 비동기 작업이 완료되면 비동기 작업이 완료되면 콜백을 미리 정해진 인수 (일반적으로 제공하는 일부 및 일부는 요청한 비동기 조치의 상태 및 결과)로 콜백을 호출합니다.
Dr.가 사무실 밖에서 나왔거나 여전히 일정에 따라 일하고 있다면, 그가 돌아올 때까지 기다리지 않고, 몇 시간이 될 수 있는데, 우리는 전화를 끊고 일단 약속이 예정되면 그들은 전화주세요.
이 특정한 경우, 병렬 Python의 제출 기능은 귀하가 제공하는 모든 인수와 결과로 콜백을 호출합니다. func
, 한 번 func
실행을 마쳤습니다.
다른 팁
문서의 관련 지점 :
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
파이썬의 패턴, 예를 들어 내 프레젠테이션을 참조하십시오 여기.
링크를 보면 호출되는 후크처럼 보입니다.
콜백 - 계산이 완료되는 즉시 콜백 args+(결과,)와 동일한 인수 목록으로 호출되는 콜백 함수
"계산이 완료되는 즉시"비트는 모호한 것처럼 보입니다. 요점은 내가 이것을 볼 수있는 한 submit()
통화는 다른 서버에 작업을 배포 한 다음 반환합니다. 마무리는 비동기식이기 때문에 차단하므로 일부 작업 단위가 완료 될 때 호출되는 함수를 제공 할 수 있습니다. 당신이하는 경우 :
submit( ..., callback=work_finished, ... )
그러면 제출은 보장합니다 work_finished()
분산 작업 단위가 대상 서버에서 완료 될 때 호출됩니다.
전화 할 때 submit()
당신은 a를 제공 할 수 있습니다 콜백 발신자와 동일한 런타임에서 호출됩니다. submit()
... 작업 부하 기능의 분포가 완료된 후에 호출됩니다.
"call foo (x, y)와 같은 종류는 제출 ()에서 몇 가지 작업을 수행했을 때"
그러나 예, 문서가 더 나을 수 있습니다. Ppython 소스에 Ganders가 있고 콜백이 호출되는 시점에서 submit()
ㅏ 콜백 나중에 당신이 호출하는 함수에 의해 호출되는 함수입니다.
예를 들어 AJAX의 작동 방식을 고려하십시오. 백엔드 서버 기능을 호출하는 코드를 작성하십시오. 미래의 어느 시점에서, 그것은 그 함수에서 돌아옵니다 ( "A"는 비동기식을 나타냅니다. 이것은 "병렬 파이썬"의 "병렬"이 모든 것입니다). 이제 - 코드가 서버에서 코드를 호출하기 때문에 완료시기를 알려주고 결과로 무언가를하고 싶습니다. 당신을 부르면 그렇게합니다 콜백 함수.
호출 된 함수가 완료되면, 그 기능이 수행되었다고 말하는 표준 방법은 코드에서 함수를 호출하도록 지시하는 것입니다. 이것이 콜백 함수이며, 그 작업은 호출 한 하위 레벨 기능의 결과/출력을 처리하는 것입니다.
콜백은 단순히 함수입니다. 파이썬에서 함수는 더 많은 객체이므로 함수 이름은 다음과 같은 변수로 사용할 수 있습니다.
def func():
...
something(func)
콜백을 인수로 받아들이는 많은 기능은 일반적으로 콜백이 특정 인수를 받아 들여야합니다. 이 경우 콜백 함수는 CallbackArgs에 지정된 인수 목록을 수락해야합니다. 나는 평행 파이썬에 익숙하지 않으므로 원하는 것이 무엇인지 정확히 모릅니다.