[Python] 파이썬 Callback 구현

참조


소개

안녕하세요. 요새 파이썬을 이용해서 회사에서 프로젝트를 진행하고 있습니다.

개발을 하던 중, 서로 다른 클래스에서 데이터를 주고 받아야 하는 일이 있었는데요.

C#에서는 delegate, event를 이용하여 callback으로 쉽게 데이터를 주고 받을 수 있는데,

찾아 보니까 Python에서도 Callback 기능이 있어서 내용 정리하고자 포스팅 하게 되었습니다.

예제 코드를 통해서 실제 Python에서 Callback 구현을 어떻게 하는지 알려 드리겠습니다.


예제 코드

# 콜백 클래스 정의
class callback_class():
    def message_event(self, callback_function, student_list, key_val):
        print("콜백 Class 호출 : %d" %key_val)
        callback_function(student_list, 20)

# 메인 Class 정의
class student_class():

    def handler(self, student_list, key_val):
        self.key_val = key_val
        cb_class_obj = callback_class()
        cb_class_obj.message_event(self.cb_handler, student_list, key_val)

    def cb_handler(self, student_list, key_val):
        print ("콜백 호출 %d"  %key_val)

        for key, value in student_list.items():
            print(key, value)

        print("keyval is %d" % self.key_val)


student = student_class()
student_list =  {'Jo': 29, 'Kim': 23}
student.handler(student_list, 80)

실행 결과

  • 다음과 같이 Callback 을 통해서 서로 다른 Class에서 데이터를 넘겨주는 것을 확인할 수 있습니다.
콜백 Class 호출 : 80
콜백 호출 20
Jo 29
Kim 23
keyval is 80
728x90

이 글을 공유하기

댓글

Designed by JB FACTORY