#python #python-3.x
#python #python-3.x
Вопрос:
Я пытаюсь создать игру с палачом с помощью pygame. Сама игра для этого не имеет значения. Я определил переменную на ранней стадии в своем коде, затем позже, когда вызывается функция, которая использует переменную, Python возвращает «UnboundLocalError: локальная переменная ‘guessedLetters’, на которую ссылаются перед присвоением», и функция, и вызов позже в моем коде, чем присвоение переменной. Это присвоение переменной: guessedLetters = ""
.
Это функция:
def guess(letter):
if letter in word:
pass
else:
guessedLetters = ' ' letter
hangmanStage = 1
Здесь он вызывается (который находится в другом методе):
def redrawWindow():
win.fill((150, 150, 150))
drawLetters()
drawGuessedLetters()
drawHangman()
И именно здесь вызывается этот метод
while running:
for event in ...
redrawWindow()
pygame.display.update()
Ответ №1:
guessedLetters
должно быть объявлено внутри функции, если использование локальное, или снаружи, если оно глобальное.
В первом случае, если она объявлена вне функции, добавьте a global guessedLetters
перед ссылкой на нее.
Если он локальный, добавьте guessedLetters = ''
его сверху.
Сделайте это и для других переменных, например hangmanStage
.
Комментарии:
1. Не кажется ли вам, что было бы лучше передать,
guessedLetters
а затем, после его изменения, вернуть его вызывающему?2. @TigerhawkT3, вместо этого лучше
return
использовать оператор