2
respostas

Como solucionar o problema de referências

Durante a aula, o professor falou que os objetos só são criando quando fazemos novas instâncias. Enquanto isso, as demais cópias são apenas referências àquele objeto. Como lidar com isso? E se eu quiser trabalhar com uma cópia do meu objeto, sem alterar o objeto original? E como lidar quando tenho listas de listas? Pois imagino que problemas similares apareçam.

2 respostas

Lucas,

Exatamente!

Um lei muito importante na programação para todas as linguagens:

"Um objeto é uma instância de uma classe." (por favor, decore isso como um lindo mantra.)

Sim, você sempre usa a classe como um modelo para os objetos que você vai criar. A criação desse modelo é "instanciar" a classe.

P: Como lidar com isso?

R: Administrando suas nessesidades. Sempre que você precisar de um objeto para fazer alguma coisa você cria.

*P: E se eu quiser trabalhar com uma cópia do meu objeto, sem alterar o objeto original? *

R: Pode fazer sem problemas, mas... você fala em HERDAR a classe em outra classe ou você fala dos dados, sem alterar os dados da classe?

P: E como lidar quando tenho listas de listas?

R: Exemplo: Você percorre a lista com uma rotina de looping e depois dentro do looping você coloca outra rotina de looping para percorrer a lista interna.

... Pois imagino que problemas similares apareçam. ...

Apareçam? Não... Simplesmente EXISTEM. A própria informática é um grande problema, uma grande dor de cabeça... KKKKK!!!

Abaixo alguns links para você aprender mais, recomendo você ler:

=============================================

Instância (ciência da computação)

https://pt.wikipedia.org/wiki/Inst%C3%A2ncia_(ci%C3%AAncia_da_computa%C3%A7%C3%A3o)

=============================================

Como Criar Classes e Objetos em Python

https://www.pythonprogressivo.net/2018/11/Como-criar-Classe-Objeto-Atributo-Metodo-Python.html

=============================================

LISTAS NO PYTHON

Autor Erickson Lopes • 14/06/2021

Atualizado em: 26/02/2023

https://pythonacademy.com.br/blog/listas-no-python

=============================================

PYTHON - Loops em Python

On 24 de março de 2022, by Tiago Dias

https://dadosaocubo.com/loops-em-python/

=============================================

class ContaCorrente:
  def __init__(self, codigo):
    self.codigo = codigo
    self.saldo = 0

  def deposita(self, valor):
    self.saldo += valor

  def __str__(self):
    return "[]>> Codigo {} Saldo {} <<]".format(self.codigo, self.saldo)

[]'s,

Fabio I.

"P: E se eu quiser trabalhar com uma cópia do meu objeto, sem alterar o objeto original? *

R: Pode fazer sem problemas, mas... você fala em HERDAR a classe em outra classe ou você fala dos dados, sem alterar os dados da classe?"

Estou falando dos dados e como trabalhar com eles, sem alterar os dados da classe