Существуют ли какие-либо соображения относительно производительности при использовании большого количества соединенных вместе генераторов, в отличие от одного генератора.
Например:
def A(self, items):
for item in self.AB(items):
if object.A():
yield item
def AB(self, items):
for object in self.ABC(objects):
if object.A() or object.B():
yield object
def ABC(self, objects):
for object in objects:
if object.A() or object.B() or object.C():
yield object
Ясно, что вызов A(objects)
будет проходить через три разных генератора, но во многих ситуациях это заставляет код повторно использовать лучше, если есть разные генераторы для обработки различной фильтрации. Кто-нибудь может указать, что при использовании этой методики существует значительное влияние на производительность?