スケジュールされたイベントによって呼び出される関数から返される値を取得したいと考えています。以下は、私がやりたいことの簡単な例です。
import time
import sched
schedule = sched.scheduler(time.time, time.sleep)
def ret_this():
return "This."
def schedthis():
schedule.enter(2,1,ret_this, ())
schedule.run()
## <- print returned value here
if __name__ == "__main__":
schedthis()
私は次のような多くのことを試しました:
schedule.enter(2,1,print ret_this, ())
あるいは:
schedule.enter(2,1,ret = ret_this, ())
schedule.run()
print ret
たぶん、いくつかの背景が必要になるでしょう。
着信接続をリッスンするサーバーを作成したいと思います (これは完了です)。接続が確立されると、新しいスレッドが生成され、ソケットがそのスレッドに解析されます。そのスレッドでは、サーバーに送信された値が読み取られ、サーバーはクライアントが何をスケジュールしようとしているのかを判断します。クライアントが何を望んでいるかをサーバーが認識すると、サーバーはそれをスケジュールします。
ユーザーがスケジュールされたイベントが完了した後に情報を表示したい場合 (この回答が入ってくる場所)、イベントが終了するまで待機し、返された値をクライアントに送信します。
そうでない場合、イベントはスケジュールされ、クライアントは「Done, farewell.」を受け取ります。接続が閉じます。
私はプログラミングの神様と呼んでいます。助けてください。