Pythonで関数の実行時間を制限するための方法はいくつかあります。以下に、それぞれの方法とその使用例を示します。
timeout-decorator
timeout-decorator
は、デコレータとして関数に適用し、指定した時間が経過するとタイムアウトさせることができます。以下に使用例を示します。
import timeout_decorator
@timeout_decorator.timeout(5)
def mytest():
print("Start")
for i in range(1,10):
time.sleep(1)
print("{} seconds have passed".format(i))
if __name__ == '__main__':
mytest()
このコードでは、mytest
関数が5秒以上実行されると、タイムアウトエラーが発生します。
timeout-timer
timeout-timer
は、関数やステートメントにtimeout()
関数を追加し、制限時間がなくなった場合に例外を発生させます。以下に使用例を示します。
from timeout_timer import timeout
@timeout(5)
def mytest():
print("Start")
for i in range(1,10):
time.sleep(1)
print("{} seconds have passed".format(i))
if __name__ == '__main__':
mytest()
このコードでは、mytest
関数が5秒以上実行されると、タイムアウトエラーが発生します。
py-timeout
py-timeout
は、Pythonの関数やメソッドの実行時間でのタイムアウト機能を提供します。以下に使用例を示します。
from py_timeout import timeout
@timeout(5)
def mytest():
print("Start")
for i in range(1,10):
time.sleep(1)
print("{} seconds have passed".format(i))
if __name__ == '__main__':
mytest()
このコードでは、mytest
関数が5秒以上実行されると、タイムアウトエラーが発生します。
これらのライブラリを使用することで、Pythonの関数の実行時間を制限することが可能です。適切なライブラリを選択し、コードのパフォーマンスと効率を向上させましょう。