10

コンテナー クラス内で、そのアイテム (またはそのアイテムの変換、またはそのアイテムのサブセット) を反復処理する場合は、ジェネレーター ( など)を作成するか、ジェネレーター ( など)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

どうやら、どちらの方法も(表面では)同じように動作します。

  1. どのアプローチが望ましいですか?またその理由は?

  2. オーバーヘッドが少ないアプローチ、または私が見つけられない他の利点があるアプローチはどれですか?

4

1 に答える 1