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
しかし、明らかに動作しませんでした。
私の質問は、親クラスのコードをコピーせずに行うことができますし、継承されたコードの再利用性のための最もpythonicなアプローチは何ですか。次のように
は、おそらくあなたが明示的に再利用できる機能(? '_iter_as_rect')に'のRect .__ iter__'の実装を移動する方が良いでしょう。 –