计算执行不同参数的函数的次数,然后在按下 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))
我希望能够计算需要不同参数的已定义函数的执行次数,然后每次将该计数器重置为 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))