0

私は、すべてを軌道に乗せることになっているコードの1つのブロックで始まるPythonスクリプトを持っています。このコードは、テキストを出力してタイマーを開始する関数を呼び出します(スレッドモジュールから)。タイマーによって呼び出される関数もテキストを出力しますが、その関数は実行されません。

from threading import Timer

def func1():
    print "func1 successful"
    t = Timer(1, func2)
    t.start

def func2():
    print "func2 successful"

####program start####
print "test start"

func1()

上記の簡略化されたバージョンは、2行のテキストを印刷した後に終了します。プログラムがタイマーを待機するように、下部に無限ループを追加しようとしましたが、終了できませんでした。2番目の関数が実行されないのはなぜですか?

4

1 に答える 1

3

start 関数を呼び出していないためです。

from threading import Timer

def func1():
    print "func1 successful"
    t = Timer(1, func2)
    t.start()
    #      ^^

def func2():
    print "func2 successful"

####program start####
print "test start"

func1()

今すぐ動作する必要があります

于 2012-07-22T19:03:35.343 に答える