
Callback Function
callback function란 다음 두가지에 해당하는 function을 의미한다.
- 다른 function의 argument로 전달되어
- 특정 event가 발생시 호출이 이루어지는 function을 가르킨다 (사용자가 명시적으로 호출하지 않음).
First class object로서의 function 특성 덕분에
- 함수를 변수에 할당하고
- 다른 함수의 인자로 전달할 수 있어서,
- callback function(특정 시점에 호출될 함수를 미리 전달하는) 패턴이 가능
2023.07.15 - [Python] - [Python] first-class object (일급객체)
[Python] first-class object (일급객체)
함수형 프로그래밍 언어에서 중요한 개념이며,JavaScript와 Python등에서 Closure와 같은 다양한 디자인패턴을 응용 및 구현하는데 중요한 역할을 한다. 함수형 언어 관련 참고 자료 :http://ds31x.blogspot.c
ds31x.tistory.com
Python에서 대표적인 callback은
map,filter등의 function의 첫번째 argument로 주어지는 함수이다.- 이들은 두번째 argument인
iterator가 iteration을 할 때마다 호출되어 각 item에 대해 처리를 수행하게 된다.
2023.07.07 - [Python] - [Python] lambda expression and map, filter, reduce.
[Python] lambda expression and map, filter, reduce.
Lambda expression (or Lambda Function, Anonymous Function)Python 에서 lambda function (or lambda expression)은 anonymous function(익명함수)를 만드는데 사용됨.function 형태로 code구현의 재사용을 해야하긴 하지만, def문을 이
ds31x.tistory.com
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
[PySide] FigureCanvas.mpl_connect - Matplotlib
FigureCanvas.mpl_connect FigureCanvas 클래스는Matplotlib 이 이용하여 그려진 그래픽 요소와의 interaction(상호작용)을 위한 event handling을 구현하기 위해,mpl_connect method를 제공함.더보기Matplotlib는 wypython, tkinte
ds31x.tistory.com
또한, computer vision 라이브러리로 유명한 openCV에서 mouse event를 처리하는 방식도 callback 함수를 이용한다.
https://dsaint31.me/mkdocs_site/DIP/cv2/ch00/dip_0_03/
BME
callback cv2.setMouseCallback Mouse as a Paint-Brush 이 문서의 코드는 cv2.imshow가 가능한 local 서버에서 동작하는 jupyter note 등을 대상으로 구현됨. Colab 이나 원격지 서버에서 동작중인 jupyter note등에서는 동
dsaint31.me
callback이라는 용어의 유래는
- 일반적으로 개발자가 만든 사용자 정의 function (or code)에서 프로그래밍 언어에서 제공하는 function이 호출되는 것이 올바른 방향인데,
- 이와 반대로 프로그래밍 언어에서 제공하는 함수에서 사용자 정의 function이 호출되는 경우가 callback으로
- 호출의 방향이 반대라는 의미에서 callback이라는 용어가 주어졌다고 한다.
또는 callback 함수의 경우, 실제 사용자가 명시적으로 호출하지 않고 뒤에서 event등에 의해 호출되기 때문에 callback이라는 이름이 붙어다는 애기도 있다.
- Python의 special method와 비슷하다. (개발자가 호출을 명시적으로 하지 않는다는 점에서...)
2023.07.13 - [Python] - [Python] special methods and operator overloading
[Python] special methods and operator overloading
Special Methods사용자가 직접 호출하는 경우가 거의 없고, 간접적으로 호출이 됨.즉, 개발자(사용자)가 over-riding을 통해 구현은 하지만 직접 호출하는 경우가 거의 없고,개발자가 다른 built-in function
ds31x.tistory.com
대부분 유래에 대한 이야기는 진위 파악이 쉽지 않다.
대신 이해가 빠르게 되면서 기억하는데 도움이 되는 것을 취하면 된다. ^^;;
같이보면 좋은 자료들
2023.10.06 - [Pages] - [Python] function 과 Scope, Name Space 정리
[Python] function 과 Scope, Name Space 정리 - Summary
Function이란?https://dsaint31.me/mkdocs_site/CE/ch05/ch05_02_01_function/ BME228Function in the Programming Mathematics에서의 function과 약간의 차이점이 있으나 프로그래밍에서의 function은 많은 부분에서 Mathematics에서의 fu
ds31x.tistory.com
'Python' 카테고리의 다른 글
| [Python] Nested Function (or Inner 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 |