Informática Múltipla Escolha

O que acontece quando você executa o comando "conta1 = conta2" em Python, considerando que ambos são objetos da classe Conta?

O que acontece quando você executa o comando "conta1 = conta2" em Python, considerando que ambos são objetos da classe Conta?

  1. conta1 será copiado para conta2
  2. conta2 será copiado para conta1
  3. Os objetos conta1 e conta2 serão fundidos
  4. Nada, pois este comando é inválido
  5. conta1 e conta2 apontarão para o mesmo objeto na memória

Resolução completa

Explicação passo a passo

E
Alternativa E

Alternativa E - conta1 e conta2 apontarão para o mesmo objeto na memória

Introdução

Em Python, a atribuição de objetos funciona de maneira diferente da atribuição de tipos primitivos (como números inteiros simples) em outras linguagens. É fundamental compreender como a linguagem gerencia a memória para evitar erros lógicos comuns.

Desenvolvimento

Quando utilizamos o operador de atribuição =, o Python não copia os dados do objeto. Ele simplesmente cria um novo "rótulo" (nome de variável) que aponta para o mesmo endereço de memória onde o objeto já existe.

Conceito de Referência

Imagine que um objeto é uma caixa em um armário e a variável é um post-it colado na porta desse armário.

  • conta1 = Conta(): Criamos uma caixa e colocamos o post-it "conta1" nela.
  • conta2 = Conta(): Criamos outra caixa e colocamos o post-it "conta2" nela.
  • conta1 = conta2: Pegamos o post-it "conta1" e o movemos para a caixa que já tinha o post-it "conta2". Agora, dois post-its (nomes) indicam a mesma caixa.

Por que a alternativa B está incorreta?

Embora pareça intuitivo pensar que "copiou", dizer que "conta2 foi copiado para conta1" sugere que agora temos duas contas independentes com os mesmos valores. Na realidade, se você alterar um atributo de conta1 (ex: conta1.saldo = 0), essa alteração afetará imediatamente o que conta2 acessará, pois eles são o mesmo objeto físico na memória RAM.

ComportamentoDescrição
Atribuição Simples (=)Compartilhamento de referência (mesmo objeto)
Cópia Profunda (copy.deepcopy)Criação de um novo objeto independente

Conclusão

A instrução conta1 = conta2 faz com que a variável conta1 deixe de apontar para seu objeto original e passe a apontar exatamente para o objeto que conta2 já apontava. Portanto, ambas as variáveis referenciam o mesmo bloco de memória.

Resposta Correta: Alternativa E

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Informática

Ver mais Informática resolvidas

Tem outra questão de Informática?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.