2017-09-20 109 views
0

尊敬的各位,請考慮這是我在Python中的第一週,我試圖創建一個線程函數,創建調用特定函數的計時器。這裏是我的代碼:Python:將接受參數的函數傳遞給類方法?

import threading 
class TimerClass(threading.Thread): 
    def __init__(self): 
     threading.Thread.__init__(self) 
     self.event = threading.Event() 
     self.event.set = False 
    def run(self, timer_wait, my_fun(print_text)): 
     while True: 
      my_fun(print_text) 
      self.event.wait(timer_wait) 

    def stop(self): 
     self.event.set = True 




def my_fun(text_to_print): 
    print(text_to_print) 


tmr = TimerClass() 
tmr.run(3, my_fun('hello world')) 

這段代碼的結果

def run(self, timer_wait, my_fun(print_text)) 
           ^
SyntaxError: invalid syntax 

我怎樣才能解決這個代碼? 非常感謝!

回答

1

就分別傳遞參數:

def run(self, timer_wait, my_fun, print_text): 
    while check_session_live(session): 
     my_fun(print_text) 
     self.event.wait(timer_wait) 

,並稱之爲:

mr.run(3, my_fun, 'hello world') 
+0

您好感謝這個工作,但我只是想知道這是做這個的標準方法是什麼? – Mohammad

+0

是的。如果你想讓你的回調負責調用該函數,你不能事先自己調用它。 –

相關問題