gpt4 book ai didi

python - 如何覆盖自定义类的 __iter__()?

转载 作者:太空宇宙 更新时间:2023-11-04 00:43:32 24 4
gpt4 key购买 nike

我想做的是重用生成器

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)

在 child 类。我试过写类似的东西

class Block(Rect):
...
def __iter__(self):
for p in super(Block, self):
yield p + self.offset

但显然那是行不通的。

我的问题是,是否可以在不从父类复制代码的情况下完成,什么是最 pythonic 的继承代码可重用性方法。

最佳答案

您可以按如下方式进行:

class Block(Rect):
def __iter__(self):
for p in super(Block, self).__iter__():
yield p + self.offset

关于python - 如何覆盖自定义类的 __iter__()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40803067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com