What is the function of the name of the classes inserted inside the parentheses of the constructor __init__( )
, in classes Telefones
, TiposTelefone
and Agenda
?
This is just a code snippet from Chapter 10 of "Introduction to Programming with Python" by Nilo Ney Coutinho Menezes.
class ListaUnica:
def __init__(self, elem_class):
self.lista = []
self.elem_class = elem_class
...
class Telefone:
def __init__(self, numero, tipo=None):
self.numero = numero
self.tipo = tipo
...
class Telefones(ListaUnica):
def __init__(self):
# Não entendo QUAL O FUNCIONAMENTO da classe Telefone
# dentro do __init__ do método super(). Até onde estudei
# sobre POO, a função construtora é usada para
# inserir parâmetros, (ou não), para a classe, e normalmente
# HERDAMOS ESSES PARÂMETROS da superclasse (no caso,
# da classe ListaUnica) usando o método built-in super(),
# mas aqui nesse caso, inserimos a classe
# Telefone no lugar de onde seria normalmente inserido parâmetros
# que herdariamos da classe pai (no caso, ListaUnica),
# acabei ficando sem entender o fluxo do código,
# poderia me explicar o que acontece com o código na linha abaixo...
super().__init__(Telefone)
class DadoAgenda:
def __init__(self, nome):
self.nome = nome
self.telefones = Telefones()
...
class TiposTelefone(ListaUnica):
def __init__(self):
# não entendo qual o funcionamento da classe TiposTelefone
# dentro do __init__ do metodo super() tbm!!!.
super().__init__(TipoTelefone)
class Agenda(ListaUnica):
def __init__(self):
# não entendo qual o funcionamento da classe DadoAgenda
# dentro do __init__ do metodo super() tbm!!!.
super().__init__(DadoAgenda)
self.tiposTelefone = TiposTelefone()
...