-1
每次按下鼠标时,我都需要增加一个计数器变量,即count
。我不想使用全局变量,因此我得到以下错误:Python:无法增加函数中的计数器变量
我得到global name 'count' is not defined
,如果我在on_mouse_press
函数中使用global count
行。
如果我不使用global
线,我得到的错误UnboundLocalError: local variable 'count' referenced before assignment
的代码如下:
import pyglet
from pyglet import clock
import time
from pyglet.gl import *
from pyglet.window import mouse, key, Window
def dispatch_mouse_events(mywindow, count, dataclick, datatime):
@mywindow.event
def on_mouse_press(x, y, button, modifiers):
#global count
timeNow = time.clock()
if button == mouse.LEFT:
dataclick[count] = '-1'
datatime[count] = timeNow
if button == mouse.RIGHT:
dataclick[count] = '1'
datatime[count] = timeNow
count += 1 # increase counter
return count
def mymain():
mywindow = Window(fullscreen = False)
framerate = 60.0
clock.set_fps_limit(framerate)
mywindow.set_visible(True)
# Necessary variables for the data file
count = 0 # counter for each click
dataclick = [0]*15000
datatime = [0]*15000
while not mywindow.has_exit:
startMs = clock.tick()
mywindow.dispatch_events()
count = dispatch_mouse_events(mywindow, count, dataclick, datatime)
# Display frame
mywindow.clear() # clear window
fps.draw()
mywindow.flip()
pass
if __name__ == "__main__":
fps = pyglet.clock.ClockDisplay(color=(1,1,1,1))
mymain()
我怎样才能增加一个计数器,并使用全局变量它避免?
您是否尝试改变'调度中的名字......'功能?我觉得python会被'count = count'这行弄糊涂了。由于名称完全相同,因此无法区分差异。 –
我会编辑这个问题,我忘了删除这一行,我试图检查是否从另一个变量复制值会改变任何东西。谢谢回答! –