特定のクラスを返すジェネレーターをよく使用します。私がやりたいのは、ジェネレーター クラスをサブクラス化して、そのクラスのインスタンスを生成するジェネレーターに適したメソッドを使用できるようにすることです。たとえば、私がやりたいことの 1 つは、ベース ジェネレーターをフィルター処理するジェネレーターを返すメソッドを持つことです。
私はこのようなことをしたい:
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
。