Une touche de classe

Nous avons vu comment nous pouvions ajouter une nouvelle méthode à une classe existante, dans laquelle nous voulions réparer le robot pour qu'il sache comment tourner à droite. Voici un autre exemple d'ajout d'une méthode à une classe existante.

class Etonnant(RefurbishedRobot):
def diag(self):
self.set_trace_style(1, 'white')
self.turn_left()
self.move()
self.turn_right()
self.move()
self.set_trace_style(1, 'sea green')

Magicien = Etonnant()
Magicien.move()
Magicien.move()
Magicien.diag()
Magicien.diag()
Magicien.move()
Magicien.move()
Magicien.turn_off()

magie

Le nouveau robot connaît toutes les méthodes existantes que le RefurbishedRobot existant connaissait [par exemple move(), turn_off()] ainsi qu'une nouvelle [diag()].

Concevons une nouvelle classe

Parfois, nous voulons créer une nouvelle classe qui change le comportement de base d'une classe existante. Pour cela, nous devons redéfinir une méthode spéciale [__init__()]. L'exemple suivant est l'un de ces cas, où nous "réparons la fuite d'huile", pour que le nouveau robot ne laisse pas de trace. En fait, nous faisons plus que cela puisque nous lui faisons laisser une trace blanche (au lieu de la trace bleu-vert par défaut), centrée sur la rue ou l'avenue où le robot avance [définie comme le style numéro 5] pour qu'elle recouvre efficacement la ligne pointillée grise, comme si le robot l'effaçait.

class Effaceur(RefurbishedRobot):
def __init__(self):
RefurbishedRobot.__init__(self)
self.set_trace_style(5, 'white')

Chipeur = Effaceur()
while Chipeur.front_is_clear():
Chipeur.move()
Chipeur.turn_off()

effaceur

Vous pourrez vouloir le modifier pour essayer d'autres numéros de styles (1 à 5) avec d'autres couleurs.

previousArrangeons Reeborg - home - Éviter les répétitions - les choses importantes.next