Não entendi até o momento o porquê de ter que usar uma variável privada quando se usa o @property.
E o porquê que dá este erro quando não se usa
@property
def vida(self):
return self.vida
@vida.setter
def vida(self, nova_vida):
if nova_vida > 0:
self.vida = nova_vida
else:
self.vida = 0
Traceback (most recent call last):
File "C:\Users\Adm\OneDrive\Documentos\TestePython\index.py", line 9, in <module>
vanders.defender(slime)
File "C:\Users\Adm\OneDrive\Documentos\TestePython\Vanders.py", line 11, in defender
self.vida -= inimigo.dano - self.armadura / 100
File "C:\Users\Adm\OneDrive\Documentos\TestePython\Personagem.py", line 27, in vida
return self.vida
File "C:\Users\Adm\OneDrive\Documentos\TestePython\Personagem.py", line 27, in vida
return self.vida
File "C:\Users\Adm\OneDrive\Documentos\TestePython\Personagem.py", line 27, in vida
return self.vida
[Previous line repeated 995 more times]
RecursionError: maximum recursion depth exceeded
Já dei uma pesquisada e disse que é porque ele entra em looping, mas por quê?