문제

~ 안에 병렬 파이썬 그것은 무언가를 가지고 있습니다 제출하다 a라고하는 함수 콜백 (선적 서류 비치) 그러나 너무 잘 설명하지 않는 것 같습니다. 며칠 전에 그들의 포럼에 게시했는데 응답을받지 못했습니다. 누군가 콜백이 무엇인지, 무엇을 사용하는지 설명할까요?

고맙습니다.

도움이 되었습니까?

해결책

콜백은 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에 지정된 인수 목록을 수락해야합니다. 나는 평행 파이썬에 익숙하지 않으므로 원하는 것이 무엇인지 정확히 모릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top