コンテナー クラス内で、そのアイテム (またはそのアイテムの変換、またはそのアイテムのサブセット) を反復処理する場合は、ジェネレーター ( など)を作成するか、ジェネレーター ( など)f
を返すg
ことができます。
class SomeContainer:
def __init__(self):
self.data = [1, 'two', 3, 'four']
def f(self):
for e in self.data: yield e + e
def g(self):
return (e + e for e in self.data)
sc = SomeContainer()
for x in sc.f(): print(x)
for x in sc.g(): print(x)
を介してジェネレーターに情報を渡す必要はありませんsend
。
どうやら、どちらの方法も(表面では)同じように動作します。
どのアプローチが望ましいですか?またその理由は?
オーバーヘッドが少ないアプローチ、または私が見つけられない他の利点があるアプローチはどれですか?