2017-05-03 15 views
0

関数を書く必要があります。私はthreading.Timerを使用していますが、動作しませんでした。ここでpython threading.timerは関数を繰り返しませんでした

ismyコード:

import threading 

def plus(a,b): 
    print (a+b) 

def repeat(func,interval,*args): 
    threading.Timer(interval, func, args = args).start() 

repeat(plus,1,2,3) 
+1

私は[docs](https://docs.python.org/3/library/threading.html#timer-objects)を読みましたが、それは繰り返す必要があるとは言えません。すべての可能性の高い時に、スレッド関数に新しいタイマーを設定する必要があります。 –

答えて

0

それが繰り返されるようにするには、各インターバルの後、セットアップに新しいタイマーを必要としています。

これは少し機能的ですが、それを行う1つの方法です。それは最も単純な方法ではないかもしれません。

from threading import Timer 
from functools import partial 

def plus(a,b): 
    print (a+b) 

def repeat(func,interval,*args): 

    # call the provided func 
    func(*args) 

    Timer(interval, partial(repeat, func, interval), args=args).start() 

repeat(plus,1,2,3) 

repeatで関数を呼び出し、タイマーを設定します。 intervalに正しい引数を指定する必要があります。したがって、最初の2つの引数がすでに存在するように部分的に適用する必要があります。

関連する問題