このエラーは、Tornado の ioLoop.add_timeout() または IOLoop.add_callback() メソッドの使用によって発生します。渡された期限パラメータの値は、整数または浮動小数点数ではありません。数値型パラメータを使用する必要があります。
解決策は、コード内の IOLoop.add_timeout() または IOLoop.add_callback() メソッドに渡される期限パラメータの値をチェックして、それが期限切れパラメータであることを確認することです。整数または浮動小数点数。
たとえば、string またはその他の非数値型の値を渡す場合は、それを整数または浮動小数点数に変換します。
エラーが他の理由によるものである場合は、より詳細な回答を提供するために、より詳しいコンテキストとコード スニペットを提供してください。
はい、例を示します:
import tornado.ioloop def my_callback(): print("callback called") # This will work deadline = tornado.ioloop.IOLoop.current().time() + 5.0 tornado.ioloop.IOLoop.current().add_timeout(deadline, my_callback) # This will raise "TypeError("Unsupported deadline %r" % deadline)" deadline = "5.0" tornado.ioloop.IOLoop.current().add_timeout(deadline, my_callback)
最初の例では、浮動小数点数を期限として渡していますが、これは正しいです。 2 番目の例では、文字列を渡しているため、エラーが発生します。期限を float 型に変換する必要があります。
rreeこうすることでエラーを回避できます
将来のある時点でコールバック関数を実行したい場合は、最初のパラメータとしてタイムスタンプを受け取る IOLoop.add_timeout() メソッドを使用できます。コールバック関数は、このタイムスタンプに達した後に実行されます。たとえば、5 秒後にコールバック関数を実行したい場合は、次のコードを使用できます:
deadline = float("5.0") tornado.ioloop.IOLoop.current().add_timeout(deadline, my_callback)
次のイベント ループでコールバック関数を実行する場合は、IOLoop.add_callback() メソッドを使用できます。
rreeもう 1 つの方法は、IOLoop.call_later() メソッドを使用することです。このメソッドは、最初のパラメータとして秒数を受け取り、時間が経過した後にコールバック関数を実行します。
たとえば、5 秒後にコールバック関数を実行したい場合は、次のコードを使用できます:
import tornado.ioloop def my_callback(): print("callback called") deadline = tornado.ioloop.IOLoop.current().time() + 5.0 tornado.ioloop.IOLoop.current().add_timeout(deadline, my_callback) # Start the IOLoop tornado.ioloop.IOLoop.current().start()
これらの方法をより高度なシナリオで使用する場合は、Tornado のドキュメントで詳細を確認できます。
以上がプロンプト TypeError(\'サポートされていない期限 %r\' %期限) の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。