Черепаха Python UnboundLocalError - PullRequest
0 голосов
/ 23 ноября 2018

Я получаю UnboundLocalError, когда пытаюсь назначить turtle для turtle.Turtle () в функции.Почему это?Имя используется в turtle.py?

import turtle    
def make_turtle():  
    turtle = turtle.Turtle()
    return turtle  

eu = make_turtle()

Traceback (most recent call last):
  File "/home/usr/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 6, in <module>
    eu = make_turtle()
  File "/home/luis/PycharmProjects/LearningToThinkLikeAComputerScientist/c4 - Functions/test.py", line 3, in make_turtle
    turtle = turtle.Turtle()
UnboundLocalError: local variable 'turtle' referenced before assignment

1 Ответ

0 голосов
/ 23 ноября 2018

В операторе импорта вы назначаете имя черепаха.

Затем вы назначаете ему функцию.Если я правильно понял, синтаксический анализатор python сначала устанавливает, что присвоено имя turtle, что делает его локальным.Затем он обрабатывает строку turtle = turtle.Turtle() перед справа налево.Обнаружив, что вы пытаетесь получить значение, на которое указывает turtle, оно не присвоено, вы получаете сообщение об ошибке.

Вместо этого попробуйте другое имя:

import turtle

def make_turtle():  
    cat = turtle.Turtle()
    return cat  

eu = make_turtle()
...