Python 计数执行不同参数的函数的次数,然后在按ENTER键时重置计数
我希望能够计算执行需要不同参数的定义函数的次数,然后每次按ENTER键时将计数器重置为0。我希望能够通过以下定义的功能使用此操作:Python 计数执行不同参数的函数的次数,然后在按ENTER键时重置计数,python,python-3.x,counter,decorator,turtle-graphics,Python,Python 3.x,Counter,Decorator,Turtle Graphics,我希望能够计算执行需要不同参数的定义函数的次数,然后每次按ENTER键时将计数器重置为0。我希望能够通过以下定义的功能使用此操作: def draw(x): global drawing q.put(x) process = False drawingLock.acquire() if not drawing: process = True drawing = True drawingLock.release()
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()
此函数是一个队列
,它接受函数参数并逐个执行,此函数的参数是在海龟图形窗口中绘制字母的函数。此外,此函数由对应于所绘制字母的特定字母的按键调用。例如:
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
如何计算用户在turtle图形窗口中执行此
draw()
函数的次数,然后在每次按下ENTER键时将其重置?我曾尝试为此创建一个装饰器,但我创建的装饰器不会返回任何海龟图形,并且似乎无法处理参数可能随用户选择的参数而变化的函数。非常感谢您在这个问题上提供的任何帮助!:) 函数允许属性:
def draw(x):
if not hasattr(draw, 'counter'):
draw.counter = 0
draw.counter += 1
# body
捕获来自用户的输入:
def handle_enter():
draw.counter = 0
onkey(handle_enter, 'Enter')
了解它被调用了多少次:
print('`draw` has been called {} times'.format(draw.counter))
尽管尝试失败,但您可以使用装饰器解决此问题。顺便说一下:考虑在异常发生时你的函数的路径。要仅在特定范围内设置标志,请使用
try
和finally
或使用所谓的“上下文管理器”。