Python _tkinter.TclError:Error#args:What';怎么了?

Python _tkinter.TclError:Error#args:What';怎么了?,python,events,binding,canvas,tkinter,Python,Events,Binding,Canvas,Tkinter,还在写游戏。不过,这个错误有点不同。我得到了这样的线索 Tkinter回调中出现异常 回溯(最近一次呼叫最后一次): 文件“/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/tkinter/_init__.py”, 第1399行,正在通话__ 返回self.func(*args) 文件“/Users/bluedragon1223/Desktop/Djambi0-2.py”,第68行,在新闻空间中选择 pieceID=e

还在写游戏。不过,这个错误有点不同。我得到了这样的线索

Tkinter回调中出现异常 回溯(最近一次呼叫最后一次): 文件“/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/tkinter/_init__.py”, 第1399行,正在通话__ 返回self.func(*args) 文件“/Users/bluedragon1223/Desktop/Djambi0-2.py”,第68行,在新闻空间中选择 pieceID=event.widget.find_with tag(currentCommand) 文件“/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/tkinte/_init__.py”,
第2199行,在find_with Tag中 返回self.find('withtag',tagOrId) 文件“/Library/Frameworks/Python.framework/Versions/3.1/lib/python3.1/tkinter/_init__.py”, 第2173行,在find中 self.tk.call((self._w,'find')+args))或() _tkinter.TclError:错误#args:应为“.23215664使用tagOrId标记查找”

我的意思是,我认为代码是无害的

我有全局变量
currentCommand=None
(CurX,CurY)=(0,0)
(ToX,ToY)=(0,0)
,如果这与此有关,但主要问题是我的事件

有两种:

def _newSpaceChosen(event):
print(event.widget.find_withtag('rN')) #Used to check if I had used find_withtag correctly
pieceID = event.widget.find_withtag(currentCommand) #This is the problem source
[CurX, CurY] = event.widget.coords(pieceID[1])
print(CurX, CurY)
[MetaToX, MetaToY] = _point2square(event.x, event.y)
print(event.x, event.y)
print(MetaToX, MetaToY)
[ToX, ToY] = _square2point(MetaToX, MetaToY)
print(ToX, ToY)
event.widget.move(pieceID, ToX - CurX, ToY - CurY)

def _onPieceClick(event):
stuffTags = event.widget.gettags(event.widget.find_closest(event.x, event.y))
try:
    event.widget.delete(event.widget.find_withtag('bbox'))
except:
    pass
bboxULX = (event.x // 90 + 1) * 90
bboxULY = (event.y // 90 + 1) * 90 
bboxLRX = (event.x // 90 + 1) * 90 - 90
bboxLRY = (event.y // 90 + 1) * 90 - 90
event.widget.create_rectangle(bboxULX,bboxULY,bboxLRX,bboxLRY, width=3,   
outline='yellow',tag='bbox')
currentCommand = stuffTags[0]
print(currentCommand)`
其想法是将游戏棋子标签存储在
currentCommand
中,然后使用该值控制特定棋子,直到棋子通过如下绑定移动:

canvas.bind('<1>', _newSpaceChosen)
canvas.bind(“”,\u newspaceselected)
classboard(Canvas)的
def\uuuuu init\uuuuuself(mainWin)中:
: 每个片段都有自己的
标记绑定(#片段变量,,_on片段单击)

我的假设是,
currentCommand
没有很快收到值。
你们认为是什么导致了这种痕迹?

你们的假设几乎肯定是正确的。通过在调用
find_with tag
之前打印出值,您可以很容易地验证这一假设

是的,我不知道tkinter事件发生的顺序,所以我在实际设置之前调用了
currentCommand
。谢谢