Einstieg - Simulation eines Roboters
Abänderung eines Bausteins
Die Datei roboter.py
enthalte eine Implementierung der Klasse Roboter
.
In einem Programm wird jetzt diese Implementierung der Klasse Roboter
als eine Art Baustein
benutzt:
from roboter import *
rob = Roboter()
for i in range(4):
for j in range(4):
rob.schritt()
print(rob.x, rob.y, rob.r)
rob.links()
print(rob.x, rob.y, rob.r)
Jemand ändert die Implementierung des Bausteins Roboter
in der Datei roboter.py
wie folgt ab:
class Roboter(object):
def __init__(self):
self.pos = (0, 0)
self.r = 'S'
def schritt(self):
if self.r == 'O':
self.pos = (self.pos[0] + 1, self.pos[1])
elif self.r == 'S':
self.pos = (self.pos[0], self.pos[1] + 1)
elif self.r == 'W':
self.pos = (self.pos[0] - 1, self.pos[1])
elif self.r == 'N':
self.pos = (self.pos[0], self.pos[1] - 1)
def rechts(self):
# ... wie bisher ...
def links(self):
# ... wie bisher ...
Aufgabe 1
Angenommen, du hast das nicht mitbekommen und führst noch einmal das oben gezeigte Programm aus.
>
from roboter import *
rob = Roboter()
for i in range(4):
for j in range(4):
rob.schritt()
print(rob.x, rob.y, rob.r)
rob.links()
print(rob.x, rob.y, rob.r)
(a) Warum kommt es jetzt zu einer Fehlermeldung?
(b) Wie könnte man den Baustein konzipieren, so dass Veränderungen der Implementierung möglich sind, ohne dass es zu Fehlermeldungen bei der Nutzung kommt?