Grupo de Python
Este grupo esta relacionado con nuestro curso profesional de Python. Aquí se comparten temas... View more
Problema con la property. Módulo 8- Ejercicios propuestos, ejercicio 11
Problema con la property. Módulo 8- Ejercicios propuestos, ejercicio 11
Buenas, me quedé en el ejercicio 11 en donde hay que crear una propiedad en donde se pueda setear el estado de la clase Guerrero para ataque o defensa. No logro que me funcione. El error que me sale es: AttributeError: ‘Guerrero’ object has no attribute ‘_estado’
Entre las lineas 8 y 17 es en donde no logro que me funcione.
A continuación dejo el código completo que hice:
class Guerrero:
def __init__(self,vida=100,estado_arma=100,estado="Ataque",estado_escudo=100):
self.vida = vida
self.estado_arma = estado_arma
self.estado = estado
self.estado_escudo = estado_escudo
@property
def estado(self):
return self._estado
@estado.setter
def estado(self, estado):
if self.estado != "Ataque" or self.estado != "Defensa":
raise ValueError("Los estados sólo pueden ser Ataque o Defensa")
if self.estado_escudo == 0:
raise ValueError("El escudo está roto, no puede estar en Defensa")
self._estado = estado
@property
def is_alive(self):
if self.vida > 0:
return True
def atacar(self,guerrero):
if self.estado_arma >= 2:
guerrero.vida = guerrero.vida - 20
self.estado_arma = self.estado_arma - 2
else:
print("El arma no funciona")
pass
Inicia sesión para responder.