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!