3
respostas

NameError ao inicializar codigo

Quando tento dar 'Run' no codigo, so sai esse erro:

Traceback (most recent call last): File "C:/Users/Sousa/PycharmProjects/python3oo2/models.py", line 2, in class Movie: File "C:/Users/Sousa/PycharmProjects/python3oo2/models.py", line 9, in Movie Avengers = Movie('Avengers - Finity Wars', 2018, 160) NameError: name 'Movie' is not defined

class Movie:
    def __init__(self, name, year, duration):
        self.name = name
        self.year = year
        self.duration = duration


    Avengers = Movie('Avengers - Finity Wars', 2018, 160)
    print(Avengers)

Como resolver? Obrigado!

3 respostas

Boa noite amigo!

Você precisa importar a classe Movie, caso queira usá-la.

Só execute o seguinte código antes de utilizar a classe:

from models import Movie

Bom dia Joao!

Ao tentar executar o codigo o console me da a seguinte saida. Na verdade, nao consigo importar classes que antes eu conseguia importar. Creio ter alterado algo no interpretador ou na IDE do Python.

Traceback (most recent call last): File "", line 1, in File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.3.5\helpers\pydev_pydev_bundle\pydev_import_hook.py", line 21, in do_import module = self.systemimport(name, args, *kwargs) File "C:\Users\Sousa\PycharmProjects\python3oo2\models.py", line 1, in class Movie: File "C:\Users\Sousa\PycharmProjects\python3oo2\models.py", line 7, in Movie Avengers = Movie('Avengers - Infinity Wars', 2018, 160)

Olá Daniel.

Vendo o seu código, o erro talvez esteja na indentação. O PyCharm interpreta que a construção do objeto "Avengers" está dentro da classe "Movie". Corrija a indentação e veja se dá certo. Coloque o retorno aqui nos comentários.