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

[Dúvida] E POSSIVEL GUARDAR UMA CLASS EM OUTRA?

Boa tarde. sou novo na area de programação e gostaria de uma orientação quanto a uma hipótese.

E possivel guardar uma classe em outra classe? (sim, nao é herdar, nao é polimorfismo nem mesclar, é guardar!!!)

suponha assim: eu quero criar um sistema para sla, um hospital. e tenho a classe paciente e a classe consulta

class consulta:
      def __init__(self.data,hora)
      self.data = data 
      self.hora = hora

class paciente:
       def __init__ (self, nome, cpf)
       self.nome = nome 
       self.cpf = cpf

       def consultas()
             pass. 

eu quero salvar todas as consultas em paciente. pois um paciente pode ter varias consultas. como fazer?

vamos supor tambem que eu va usar um banco de dados (mysql sla? isso n seria aplicavel mesmo se fosse utilizável? e para aproveitar a questao, seria mais facil so guardar em forma de lista ou dicionario dentro de paciente? pois sla...gastaria menos memoria? (sim, sao quase 3 perguntas diferentes).

obrigado de qualquer forma.

2 respostas
solução!

Oi @Kleber, seja bem-vindo ao nosso fórum!

"É possivel guardar uma classe em outra classe?"

Sim. Você pode ter um objeto de uma classe como atributo em outra classe. O nome disso é Composição: Exemplo:

class Roda:
    def __init__(self, aro: int):
        self.aro = aro

class Moto:
    def __init__(self, fabricante: str, rodas: Tuple[Roda]):
        self.fabricante = fabricante
        self.rodas = rodas

Com isso, você pode acessar o objeto sem dificuldade:

>>> moto = Moto("Yamaha", (Roda(16), Roda(14)))
>>> moto.rodas[0].aro
16
>>> moto.rodas[1].aro
14

"Eu quero salvar todas as consultas em paciente. pois um paciente pode ter varias consultas. como fazer?"

Você pode simplesmente ter uma lista de objetos Consulta como atributo de Paciente.

"vamos supor tambem que eu va usar um banco de dados (mysql sla? isso n seria aplicavel mesmo se fosse utilizável?"

Sim. O nome disso é ORM e é muito usado no Django (com Django ORM) e no Flask (com SQLAlchemy)

Super recomendo a leitura da documentação do SQLAlchemy - Quickstart

"Seria mais fácil so guardar em forma de lista ou dicionario dentro de paciente? pois sla...gastaria menos memória?"

Tudo vai depender do uso. Listas e Dicionários são estruturas de dados, cada uma com seus pontos fortes e fracos. Uma pode ser mais adequada que outra dependendo da finalidade.

Muito obrigado Erick, sanou todas as minhas dúvidas e respondeu cada perguntinha chatinha minha, e desculpe a demora em agradecer. inclusive, aproveitando a data, um feliz natal.