我經常使用一個返回某個類的生成器。我想要做的是對生成器類進行子類化,以便我可以使用適用於生成該類的實例的生成器的方法。例如,我想要做的事情之一就是返回一個過濾基本生成器的生成器的方法。是否有可能建議子類化發電機功能?
我想要做這樣的事情:
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