Olá, Boa noite
Quando instanciamos dois objetos com o mesmo nome, más com propriedades diferentes o coletor de lixo do Python vai apagar mesmo assim o primeiro o objeto instanciado?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá, Boa noite
Quando instanciamos dois objetos com o mesmo nome, más com propriedades diferentes o coletor de lixo do Python vai apagar mesmo assim o primeiro o objeto instanciado?
Olá, Marcos! Boa noite!
Quando instanciamos dois objetos com o mesmo nome, mas com propriedades diferentes, o coletor de lixo do Python não apagará o primeiro objeto instanciado imediatamente. O coletor de lixo é responsável por encontrar e remover objetos que não são mais acessíveis, ou seja, que não possuem mais nenhuma referência apontando para eles.
No exemplo que você mencionou, se você instanciar dois objetos com o mesmo nome, como por exemplo:
referencia = Funcionario(propriedades1)
referencia = Funcionario(propriedades2)
O primeiro objeto criado não será acessível através da variável "referencia", pois essa variável agora aponta para o segundo objeto criado. No entanto, o primeiro objeto ainda ocupará espaço na memória até que o coletor de lixo identifique que não há mais nenhuma referência apontando para ele. Nesse momento, o coletor de lixo poderá remover o primeiro objeto da memória.
É importante ressaltar que o coletor de lixo do Python possui um algoritmo complexo para determinar quando um objeto pode ser removido da memória. Ele leva em consideração fatores como o número de referências para o objeto, se existem ciclos de referências e outros critérios.
Espero ter ajudado a esclarecer sua dúvida! Se tiver mais alguma pergunta, é só me dizer. Bons estudos!
Espero ter ajudado e bons estudos!