我经常使用一个返回某个类的生成器。我想要做的是对生成器类进行子类化,以便我可以使用适用于生成该类的实例的生成器的方法。例如,我想要做的事情之一就是返回一个过滤基本生成器的生成器的方法。是否有可能建议子类化发电机功能?
我想要做这样的事情:
class Clothes(object):
def __init__(self, generator):
self.generator = generator
def get_red(self):
return (c for c in self.generator if c.color=="red")
def get_hats(self):
return (c for c in self.generator if c.headgear)
衣服类我想当作衣服的集合。我没有继承一个系列的原因是,我很少想按原样使用整套衣服,通常只需要进一步过滤。但是,我经常需要各种过滤的服装。如果可能的话,我希望Clothes本身就是一个生成器,因为这就是我打算使用它的原因,但是当尝试子类types.GeneratorType
时出现错误。
一些示例代码会很好.. – 2012-04-28 08:45:21
是什么问题?您是否尝试覆盖生成器方法?发生了什么? – newtover 2012-04-28 08:53:31