1
resposta

Código não funciona NameError: name 'Serie' is not defined

Quando eu tento iniciar "from modelo import Serie" aparece;

Traceback (most recent call last): File "", line 1, in File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.1.1\plugins\python-ce\helpers\pydev_pydev_bundle\pydev_import_hook.py", line 21, in do_import module = self.systemimport(name, args, *kwargs) File "C:\Users\Lucas Aquino\PycharmProjects\python3oo2\modelo.py", line 9, in class Serie: File "C:\Users\Lucas Aquino\PycharmProjects\python3oo2\modelo.py", line 18, in Serie atlanta = Serie("atlanta", 2018, 2) NameError: name 'Serie' is not defined


class Filme:
    def __init__(self, nome, ano, duracao):
        self.nome = nome
        self.ano = ano
        self.duracao = duracao


class Serie:
    def __init__(self, nome, ano, temporadas):
        self.nome = nome
        self.ano = ano
        self.temporadas = temporadas

    vingadores = Filme("vingadores - guerra infinite", 2018, 160)
    print(vingadores.nome)

    atlanta = Serie("atlanta", 2018, 2)
    print(f"Nome: {atlanta.nome} - Ano {atlanta.ano} - Temporadas {atlanta.temporadas}")
1 resposta

Olá Lucas,

se vc estiver tentando rodar o código do mesmo jeito que postou, me refiro em relação à indentação, vai dar erro mesmo.

Desta forma, o Python entende que o código :

    vingadores = Filme("vingadores - guerra infinite", 2018, 160)
    print(vingadores.nome)

    atlanta = Serie("atlanta", 2018, 2)
    print(f"Nome: {atlanta.nome} - Ano {atlanta.ano} - Temporadas {atlanta.temporadas}")

pertence à classe Serie.

Colocando os códigos em arquivos separados e no mesmo diretório, funciona normalmente.

Outra opção, deixando no mesmo arquivo seria formatá-lo corretamente:

class Filme:
    def __init__(self, nome, ano, duracao):
        self.nome = nome
        self.ano = ano
        self.duracao = duracao


class Serie:
    def __init__(self, nome, ano, temporadas):
        self.nome = nome
        self.ano = ano
        self.temporadas = temporadas


vingadores = Filme("vingadores - guerra infinite", 2018, 160)
print(vingadores.nome)

atlanta = Serie("atlanta", 2018, 2)
print(
    f"Nome: {atlanta.nome} - Ano {atlanta.ano} - Temporadas {atlanta.temporadas}")