计算执行不同参数的函数的次数,然后在按下 ENTER 键时重置计数

Count number of times function with varying arguments executed, then reset count when ENTER key pressed

我希望能够计算需要不同参数的已定义函数的执行次数,然后每次将该计数器重置为 0 ENTER 键被按下的时间。我希望能够通过以下定义的函数来使用此操作:

def draw(x):
    global drawing
    q.put(x)
    process = False
    drawingLock.acquire()
    if not drawing:
        process = True
        drawing = True
    drawingLock.release()
    if process:
        if not q.empty():
            x()
        drawingLock.acquire()
        drawing = False
        drawingLock.release()

这个函数是一个queue,它接受函数参数并一个一个地执行,这个函数的参数是在海龟图形中绘制字母的函数 window。此外,此函数由与绘制的字母相对应的特定字母的按键调用。例如:

onkey(lambda: draw(draw_A), "a") 
# This draws an "A" in the Turtle Graphics window when "a" is pressed on the keyboard
# If multiple "A"s pressed, it draws them one by one

我如何计算这个draw()函数在海龟图形window中被用户执行了多少次,然后在每次按下回车键时重新设置?我已经尝试为此创建一个装饰器,但我创建的装饰器没有 return 海龟图形的任何东西,并且似乎不适用于其参数可以随用户选择的参数而变化的函数。非常感谢有关此问题的任何帮助! :)

函数允许属性:

def draw(x):
    if not hasattr(draw, 'counter'):
         draw.counter = 0
    draw.counter += 1
    #  body

捕获用户的 ENTER:

def handle_enter():
    draw.counter = 0

onkey(handle_enter, 'Enter') 

找出它被调用了多少次:

print('`draw` has been called {} times'.format(draw.counter))