No código mostrado em aula:
1º elif self.tipo_dados == 'list':
dados = self.path
self.path = 'lista em memoria'
2º def join(dadosA, dadosB):
combined_list = []
combined_list.extend(dadosA.dados)
combined_list.extend(dadosB.dados)
return Dados(combined_list, 'list')
3º dados_fusao = Dados.join(dados_empresaA, dados_empresaB)
Algumas dúvidas acabaram surgindo: No terceiro código, quando eu chamo o método construtor "Dados." Para o python eu estou indicando que eu quero que os "dados_fusao" retorne um objeto da classe Dados?
No segundo código quando eu utilizo self junto com a variável "dados_fusao" então ele estaria esperando que o método utilizasse o objeto "dados_fusao" e por isso devemos usar um método estático? Pois não usaremos o objeto no método?
E por fim no primeiro código não ficou claro do por que devemos usar "dados = path" e " self.path = 'lista em memoria'" Se possível eu gostaria de uma explicação mais passo a passo, pois até aonde eu compreendi da explicação, nós combinamos dois atributos "dados" de dois objetos e retornamos um novo objeto da Classe Dados, mas não fez sentido o atributo "dados" receber o "path".