Нечто подобное может быть:
import sys
MAX_NUMLINES = 7
counter = 0
class TooMuchLine(Exception):
pass
def tracer(frame, event, arg):
global counter
if event == "line":
counter += 1
print "counter", counter
if counter > MAX_NUMLINES:
raise TooMuchLine()
return tracer
def badfunc():
while True:
import time
time.sleep(1)
sys.settrace(tracer)
print 'start'
try:
badfunc()
except TooMuchLine:
print 'stopped'
print 'done'
Выход:
start
counter 1
counter 2
counter 3
counter 4
counter 5
counter 6
counter 7
counter 8
stopped
done
N.B .: Я надеюсь, что вы уже прочитали это , прежде чем играть с sys.settracer