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.