Callback Function
callback function란 다음 두가지에 해당하는 function을 의미한다.
- 다른 function의 argument로 전달되어
- 특정 event가 발생시 호출이 이루어지는 function을 가르킨다 (사용자가 명시적으로 호출하지 않음).
Python에서 대표적인 callback은
map
,filter
등의 function의 첫번째 argument로 주어지는 함수이다.- 이들은 두번째 argument인
iterator
가 iteration을 할 때마다 호출되어 각 item에 대해 처리를 수행하게 된다.
2023.07.07 - [Python] - [Python] lambda expression and map, filter, reduce.
GUI에서의 event handler들도 대표적인 callback의 예이다.
- 특정 event에 호출되도록 등록시킬 때, callback function들은 argument로 넘겨지며,
- 사용자가 button등을 클릭하는 등의 특정 event 발생시 등록된 callback함수가 호출된다.
Python GUI Toolkit인 PySide에서 matplotlib의 figure를 사용하면서 event처리시 callback함수를 사용한다.
2024.05.19 - [Python/PySide PyQt] - [PySide] FigureCanvas.mpl_connect
또한, computer vision 라이브러리로 유명한 openCV에서 mouse event를 처리하는 방식도 callback 함수를 이용한다.
https://dsaint31.me/mkdocs_site/DIP/cv2/ch00/dip_0_03/
callback이라는 용어의 유래는
- 일반적으로 개발자가 만든 사용자 정의 function (or code)에서 프로그래밍 언어에서 제공하는 function이 호출되는 것이 올바른 방향인데,
- 이와 반대로 프로그래밍 언어에서 제공하는 함수에서 사용자 정의 function이 호출되는 경우가 callback으로
- 호출의 방향이 반대라는 의미에서 callback이라는 용어가 주어졌다고 한다.
또는 callback 함수의 경우, 실제 사용자가 명시적으로 호출하지 않고 뒤에서 event등에 의해 호출되기 때문에 callback이라는 이름이 붙어다는 애기도 있다.
- Python의 special method와 비슷하다. (개발자가 호출을 명시적으로 하지 않는다는 점에서...)
2023.07.13 - [Python] - [Python] special methods and operator overloading
대부분 유래에 대한 이야기는 진위 파악이 쉽지 않다.
대신 이해가 빠르게 되면서 기억하는데 도움이 되는 것을 취하면 된다. ^^;;
같이보면 좋은 자료들
2023.10.06 - [Pages] - [Python] function 과 Scope, Name Space 정리
728x90
'Python' 카테고리의 다른 글
[Python] Nested Function (0) | 2023.07.15 |
---|---|
[Python] first-class object (일급객체) (0) | 2023.07.15 |
[Python] overloading, overriding, and special methods (0) | 2023.07.13 |
[Python] special methods and operator overloading (0) | 2023.07.13 |
[Python] list (sequence type) : summary (0) | 2023.07.12 |