[ Foro de Python ]

Clases

09-Nov-2022 21:04
Invitado (invoker)
1 Respuestas

Hola gente, he investigado como resolverlo pero no he encontrado soluciones. No encuentro la forma de que la clase Dragon pueda modificar el atributo edificios de la clase Aldea. Desde ya muchas gracias. Saludos
Enunciado:
Crear la clase aldea y dragón.
Hacer que el dragón ataque una aldea y preguntarle a la aldea cuántos edificios tiene antes y después del ataque.

CODIGO:
import random
class Aldea():
   def __init__(self):
       self.edificios = random.randint(20, 100)

class Dragon(Aldea):
   def __init__(self):
       super().__init__()

   def atacar(self):
       self.edificios = self.edificios - 15
       print("El dragon ha destruido 15 edificios")


dragon = Dragon()
aldea = Aldea()
print(aldea.edificios)
dragon.atacar()
print(aldea.edificios)


21-Nov-2022 21:52
Invitado (bruno)

hola invoker

tal como tienes el código la clase dragón ya contiene a aldea quizás no tendrías que heredarla ya que quizás el dragón puede atacar varias aldeas

como no usas atributos privados es fácil modificar los edificios de aldea, solo con aldea.edificios ya accedes y puedes modificarlos como quieras

te paso un ejemplo:
https://www.online-ide.com/M94CUrSIZQ

saludos ;-)






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)