Executando verificação de segurança...
1

Soh pra ver se eu entendir, aii nesse caso entao eu teria uma Turma, essa turma teria uma lista de alunos e uma lista de disciplinas pra esses alunos ?

from app.aluno import Aluno
from app.aula import Aula

class Turma:
    alunos: [Aluno]
    disciplinas: [Aula]

Isso ?
Pensando nesse caso, eu acredito q mataria o problema da importacao circular.
Manteria o comportamento esperado do sistema.

Mas minha duvida nesse caso(falo como leigo msm, n to e nem tenho muita propriedade pra dizer q esta errado), mas ter uma classe Turma q faz o intermedio entre aluno e aula n seria o mesmo q ter uma tabela Aluno x Aula, digo em algum lugar eu li q nao eh mais usual desenvolver sistemas q espelhem a arquitetura de um banco de dados, ateh pq a forma de arquitetar um banco SQL seria diferente de um noSQL.
Sendo assim, eu to tentando entender uma forma q fuja da arquitetura do banco de dados em si.

Na vdd no fundo eu me pergunto se tem uma forma de fazer o desenvolvimento de forma concisa que n precise de uma classe Turma para unir aluno e aula.

Agradeco muito pela tua resposta, nesse primeiro momento eu vou desenvolver com a ideia q tu me passou, e como eh um caso apenas de estudo, eu vou alterando a medida q adquiro mais conhecimento.
Vlw guri =]

Carregando publicação patrocinada...
2

Você ter uma classe (ou conceito) de turma nao é espelhar o banco de dados, mas sim o dominio do negócio da aplicação.
Quando puder dá uma olhada em Domain Driven Design e linguagem ubiqua.
Pode te ajudar a tomar decisões de arquitetura.

1

Me incomoda pq essa solucao me parece muito com a forma ao qual seria feita em um banco de dados.

tabela aluno
tabela aula
tabela turma(aula x aluno)

Esse conceito do sistema ser construido semelhante ao banco de dados ta me pegando, digo n por estar errado ou gerar algum erro, ateh pq minhas experiencias com desenvolvimento visam o banco de dados como o alicerce e o sistema ser construido a partir da da base, tendo classes espelhadas com as tabelas do banco.
Mas recentemente li q essa abordagem de cosntrucao de sistemas nao eh mais tao usual, pq hj podemos ter sistemas com bancos SQL e noSQL sendo assim essa abordagem cai por terra.
Foi aii q comecei com esse projeto, algo simples mas q de alguma forma eu consiga entender esse novo conceito(novo pra mim na real).

Soh q faz um certo tempo q eu to empacado nisso, aii resolvi postar aqui.

2

Tranquilo.
Desculpe, acabei alterando minha resposta e a sua pareceu fora de contexto, mas entendi o que você disse.
Dependendo da aplicação modelar a aplicação baseado no banco de dados não é uma boa solução. Você criar classes artificiais (que não seguem o dominio) apenas para relacionar dados trás uma complexidade desnecessária.
Mas existem classes e classes.
Na dúvida revisita o domínio e verifica se ele já nao possui algo para identificar essa relação.

1
1

Hummmmm
Entendi, massa, vou dar uma olhada sim, pq agora q vc comentou sobre o dominio, pode ser q eu esteja confuso com o conceito de fato.
Nao qrendo abusar massss, tem algum material que vc indicaria ou algum livro q trate bem dos assuntos ?

1

Dá uma lida nesse artigo bem introdutório para te ajudar a entender os conceitos
https://www.locaweb.com.br/blog/temas/codigo-aberto/ddd-entenda-o-domain-driven-design/

Procura pelo Livro "Domain Driven Design - atacando a complexidade no coração do software". É a melhor fonte sobre o assunto, mas é bem..."denso" de informação o que torna a leitura um pouco cansativa, mas vale a pena.

Fiz uma pesquisa rapida e achei esse cara aqui https://dddinpython.com/ que oode ser útil baseado no seu exemplo.