Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Observação

Na explicação do vídeo pareceu que não dava pra usar self.ativo na função com o @property pois o valor de ativo não era passado no construtor, e por isso mudou-se o nome para _ativo. No entanto, acho que o problema era que o nome do atributo estava igual ao da função ativo com o decorator @property. Se mudasse o nome da função dava para manter o nome do atributo como ativo.

1 resposta
solução!

Oii Vitor, tudo bem?

Você trouxe um ponto muito interessante sobre o uso de self.ativo e a função com o decorador @property. De fato, o problema que você mencionou pode ocorrer quando o nome do atributo e o nome da função decorada com @property são iguais. Isso pode levar a uma confusão no momento de acessar ou modificar o valor do atributo, pois o Python pode não saber se está referindo-se ao método ou ao atributo em si.

No contexto do vídeo, a mudança para _ativo foi uma forma de evitar essa confusão e também de indicar que esse atributo deve ser tratado como privado (ou protegido), seguindo uma convenção comum em Python onde atributos precedidos por um sublinhado são considerados internos à classe e não devem ser acessados diretamente.

Você está correto ao dizer que se o nome da função @property fosse diferente, poderíamos manter o nome do atributo como ativo.

Um abraço e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software