Я искал подобные вопросы здесь и не могу найти точного ответа. Я получаю сообщение об ошибке "... ссылка перед назначением".
Я пытаюсь поместить два графических объекта, возвращаемых из одной функции, в две переменные в другой функции.
У меня был в основном тот же кусок кода в более ранней версии, и он работал просто отлично.
У меня есть код:
if moveE:
moved_ctr, nT = MoveCharacter(ctr, spaceSize, borderSet, "east")
if moveW:
moved_ctr, nT = MoveCharacter(ctr, spaceSize, borderSet, "west")
moved_ctr.draw(board)
Вот как выглядит MoveCharacter ():
def MoveCharacter(character, spSz, bdSet, direction):
x1 = character.getCenter().getX()
x2 = bdSet
y1 = character.getCenter().getY()
y2 = bdSet
notifyText = Text(Point(100, 100), "")
character.undraw()
distance = math.sqrt((x2 - x1)**2 + (y2 - y1)**2)
if direction == "east":
if distance < spSz:
character.move(spSz, 0)
else:
notifyText.setText("You cannot move right from where you currently are.")
if direction == "west":
if distance > spSz:
character.move(-1 * spSz, 0)
else:
notifyText.setText("You cannot move left from where you currently are.")
return character, notifyText
И я продолжаю получать сообщение об ошибке:
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
Grid()
File "<pyshell#24>", line 70, in Grid
moved_ctr.draw(board)
UnboundLocalError: local variable 'moved_ctr' referenced before assignment