Python跟踪-如何从内部停止函数的执行(从中返回)

2024-10-01 17:25:47 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我们设置设置跟踪系统(示踪物)。我想计算badfunc()执行的行数,如果执行的行数超过给定的行数,则返回该行数。在

例如:

def badfunc():
    while True:
      import time
      time.sleep(1)

def tracer(*args):
    counter += 1
    if counter > MAX_NUMLINES:
        return_from_badfunc()
    return tracer

sys.settrace(tracer)

谢谢!在


Tags: importtruereturniftime系统defcounter
1条回答
网友
1楼 · 发布于 2024-10-01 17:25:47

可能是这样:

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'

输出:

^{pr2}$

注意:我希望你在玩之前已经读过this系统设置跟踪程序:)

相关问题 更多 >

    热门问题