0
我想要做的是在子類中重用發電機如何覆蓋自定義類的__iter __()?
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)
。我試過寫點類似
class Block(Rect):
...
def __iter__(self):
for p in super(Block, self):
yield p + self.offset
但是很明顯這並沒有奏效。
我的問題是可以這樣做,而不需要從父類複製代碼,什麼是最可靠的方法來重用可用性的繼承代碼。
也許是一個更好的主意移動'矩形.__ iter__'的實施功能('_iter_as_rect'?),你可以明確地重用。 – 2016-11-25 10:46:10