最初の行のprint 1を実行してから、1 秒待って 2 番目のコマンドprint 2などを実行します。
擬似コード:
print 1
wait(1 seconds)
print 2
wait(0.45 seconds)
print 3
wait(3 seconds)
print 4
import time
print 1
time.sleep(1)
print 2
time.sleep(0.45)
print 3
time.sleep(3)
print 4
すべての回答は、各行の後に手動で挿入するか、手動で挿入できることを前提としていますがtime.sleep
、多数のコード行に対して自動化された方法が必要な場合があります。たとえば、このコードを検討してください。
def func1():
print "func1 1",time.time()
print "func1 2",time.time()
def func2():
print "func2 1",time.time()
print "func2 2",time.time()
def main():
print 1,time.time()
print 2,time.time()
func1()
func2()
各行の実行を遅らせたい場合time.sleep
は、面倒でエラーが発生しやすい各行の前に手動で挿入できます。代わりにsys.settrace
、各行が実行される前に独自の関数を呼び出して、そのコールバックで実行を遅らせることができます。したがって、すべての場所に手動で挿入time.sleep
してコードを散らかすことなく、代わりにこれを行うことができます
import sys
import time
def func1():
print "func1 1",time.time()
print "func1 2",time.time()
def func2():
print "func2 1",time.time()
print "func2 2",time.time()
def main():
print 1,time.time()
print 2,time.time()
func1()
func2()
def mytrace(frame, event, arg):
if event == "line":
time.sleep(1)
return mytrace
sys.settrace(mytrace)
main()
トレース出力なしは次のとおりです。
1 1280032100.88
2 1280032100.88
func1 1 1280032100.88
func1 2 1280032100.88
func2 1 1280032100.88
func2 2 1280032100.88
トレース出力の場合:
1 1280032131.27
2 1280032132.27
func1 1 1280032134.27
func1 2 1280032135.27
func2 1 1280032137.27
func2 2 1280032138.27
必要に応じてさらに微調整することができ、行の内容もチェックしている可能性があります。最も重要なのは、これを無効にするのが非常に簡単で、どのコードでも機能することです。
import time
# ...
time.sleep(1)