0
Was ich versuche zu tun, Wiederverwendung GeneratorWie überschreiben Sie __iter __() für die benutzerdefinierte Klasse?
class Rect(object):
...
def __iter__(self):
for y in xrange(self.tl.y, self.br.y + 1):
for x in xrange(self.tl.x, self.br.x + 1):
yield Point(x, y)
in der Kinderklasse. Ich habe versucht, etwas wie
class Block(Rect):
...
def __iter__(self):
for p in super(Block, self):
yield p + self.offset
schreiben, aber offensichtlich hat das nicht funktioniert.
Meine Frage ist, kann getan werden, ohne Code von der Elternklasse zu kopieren und was am meisten Python Ansatz für die Wiederverwendbarkeit von geerbten Code ist.
Vielleicht ist es eine bessere Idee, 'Rect .__ iter__' die Implementierung einer Funktion zu bewegen (' _iter_as_rect'?) Sie explizit wiederverwenden können. –