我经常使用返回某个类的生成器。我想做的是生成生成器类的子类,以便我可以在其上使用适合生成该类实例的生成器的方法。例如,我想做的一件事是有一个方法,该方法返回一个过滤器基础生成器的生成器。
我想做这样的事情:
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
。