How to pass and run a callback method in Python

前端 未结 3 1088
孤街浪徒
孤街浪徒 2020-12-28 14:34

I have a Manager (main thread), that creates other Threads to handle various operations. I would like my Manager to be notified when a Thread it created ends (when run() met

3条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2020-12-28 15:03

    Anything wrong with doing it this way?

    from threading import Thread
    
    class Manager():
        def Test(self):
            MyThread(self.on_thread_finished).start()
    
        def on_thread_finished(self, data):
            print "on_thread_finished:", data
    
    class MyThread(Thread):
        def __init__(self, callback):
            Thread.__init__(self)
            self.callback = callback
    
        def run(self):
            data = "hello"
            self.callback(data)
    
    m = Manager()
    m.Test() # prints "on_thread_finished: hello"
    

提交回复
热议问题