2016-07-08 7 views
2

ich Programmierung irgendwie neu und ich bin an diesem Problem fest:Wie eine Schleife mit Funktionen außerhalb einer Klasse machen

ich eine Schleife von Funktionen außerhalb ihrer Elternklasse machen will, bis zum Lebenswert erreicht 0, dann möchte ich das Programm beenden.

class Enemy(): 

    def __init__(self, name, life): 
     self.name = name 
     self.life = life 

    def attack(self): 
     x = input("write 'attack' to attack\n") 
     if x == 'attack': 
      self.life -= 5 

    def checklife(self): 
     if self.life <= 0: 
      print("Dead") 
     else: 
      print(self.name, "has", self.life, "life left") 
     return self.life 

class Attack(Enemy): 

    def loop(self): 
     while self.life > 0: 
      continue 


enemy1 = Attack("Peter", 10) 

# This are the functions I want to loop until self.life is 0 
enemy1.attack() 
enemy1.checklife() 
+1

Bitte korrigieren Sie Ihre Einbuchtung. Im Moment hat keiner deiner Klassen etwas in ihnen. – kindall

+0

danke, jetzt sollte es richtig sein – birkenspanner

Antwort

3

Verwenden Sie eine while-Schleife in Ihrer Hauptfunktion. Um diese beiden Funktionen, die Sie definiert haben, zu definieren, bis die self.life 0 ist, würde eine while-Schleife funktionieren, da sie die Bedingung prüft, bis sie wahr ist, im Gegensatz zu einer if-Anweisung, die nur einmal prüft. Ich nehme an, dass Sie auch einen int-Wert für das Leben definieren.

Versuchen Sie dies in Ihrer Hauptfunktion:

while self.life > 0: 
    enemy1.attack() 
    enemy1.checklife() 
Verwandte Themen