Экземпляр не определен, несмотря на то, что был создан экземпляр - PullRequest
0 голосов
/ 18 февраля 2020

Я пытаюсь создать тело Box2D, и мне нужно сделать это в функции, поэтому у меня есть очень простая функция:

def create_car():
    my_Car = Car("Interesting parameters"))
    return my_Car
create_car()

, а затем у меня есть основное PyGame l oop

running = True
while running:
    my_Car.steer()

steer(), как предполагает определение, это метод, написанный в классе Car. Но когда я пытаюсь запустить код, возникает ошибка

my_Car() is not defined

Что я делаю неправильно и Как я могу это исправить? Большое спасибо

Ответы [ 2 ]

2 голосов
/ 18 февраля 2020

Из вашего кода my_Car является локальной переменной внутри функции create_car. Вы должны сделать что-то вроде my_Car = create_car().

 my_Car = create_car()
 running = True
 while running:
     my_Car.steer()

Первая поисковая ссылка с объяснением: https://www.techbeamers.com/python-namespace-scope/

1 голос
/ 18 февраля 2020

Переменные, определенные внутри функции, имеют локальную область, что означает, что к ним нельзя получить доступ из внешнего мира функции. Следующее должно сделать трюк:

def create_car():
    my_Car = Car("Interesting parameters")
    return my_Car


if __name__ == '__main__':

    car = create_car()

    while True:            
        car.steer()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...