Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Duvida sobre Import

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Eu acabei fazendo dessa forma, creio que ela sera apresentada na proxima aula, de resto esta tudo igual ao apresentado na aula, mas no caso, eu queria saber, se eu sou sempre obrigado a importar desse jeito from programa import Programa, pois tentei chamar pela herança class Filme(Programa) e nao funcionou, funcionou somente quando importei

2 respostas
solução!

Olá, Victor! Como vai?

No exemplo que você mencionou, onde você está trabalhando com herança, é necessário importar a classe mãe para que a classe filha possa herdar seus atributos e métodos. Nesse caso, você pode utilizar a forma from programa import Programa, onde "programa" é o nome do arquivo onde a classe Programa está definida.

No entanto, é importante lembrar que essa é apenas uma forma de importar uma classe. Existem outras formas, como importar o módulo inteiro utilizando import programa e então acessar a classe utilizando programa.Programa. A escolha da forma de importação vai depender da estrutura do seu código e da sua preferência pessoal.

Agora, em relação ao problema que você mencionou sobre a herança não funcionar quando você tentou chamar a classe filha pela herança (class Filme(Programa)), é possível que o erro esteja relacionado à forma como você está definindo os atributos na classe filha. Certifique-se de que você está utilizando o mesmo nome de atributo e os mesmos parâmetros no método __init__ da classe filha.

Por exemplo, na classe Filme, você deve ter um método __init__ que recebe os mesmos parâmetros (nome, ano, duracao) e atribui esses valores aos atributos da classe filha. Além disso, é importante que você chame o método __init__ da classe mãe utilizando super().__init__(...) para que os atributos da classe mãe sejam inicializados corretamente.

Aqui está um exemplo de como ficaria a definição da classe Filme corrigida:

class Filme(Programa):
    def __init__(self, nome, ano, duracao):
        super().__init__(nome, ano)  # chamando o __init__ da classe mãe
        self.duracao = duracao
        self.__likes = 0

Dessa forma, a classe Filme irá herdar os atributos da classe Programa e também terá seus próprios atributos.

Espero ter esclarecido sua dúvida!

Se tiver mais alguma pergunta, é só me dizer.

Abraços e bons estudos!

Ajudou sim, muito obrigado pelo tempo dedicado, um grande abraço