class Retangulo:
def __init__(self, x, y):
self.__x = x
self.__y = y
self.__area = x * y
def obter_area(self):
return self.__area
r = Retangulo(7,6)
r.area = 7
print(r.obter_area())
pelo que entendi da resposta dda no tópico https://cursos.alura.com.br/forum/topico-comportamento-estranhoa-307331
o trecho de código r.area = 7
cria um novo atributo na classe, então o objeto r ficaria com mais um atributo chamado area que ao que parece seria um atributo publico e esse atributo só existiria no objeto r, se eu instanciar um no objeto chamado r2 = Retangulo(2,5)
o atributo area não ira existir.
Objeto r2 só possuirá os atributos previamente declarados na classe.
E assim como nessa declaração r2.volume = 5 o atributo volume só vai existir no objeto r2
Sendo assim eu teria dois objetos com os seguintes atributos em memoria:
Objeto: r
__x
__y
__area
area
Objeto: r2
__x
__y
__area
volume