Я хочу, чтобы он запускал первую строку print 1, затем ждал 1 секунду, чтобы запустить вторую команду print 2 и т. д.
Псевдокод:
print 1
wait(1 seconds)
print 2
wait(0.45 seconds)
print 3
wait(3 seconds)
print 4
Я хочу, чтобы он запускал первую строку print 1, затем ждал 1 секунду, чтобы запустить вторую команду 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
Вы можете дополнительно настроить его в соответствии с вашими потребностями, также может проверяться содержимое строки, и, что наиболее важно, его очень легко отключить, и он будет работать с любым кодом.