0
def prefixes(s):
    if s:
        yield from prefixes(s[:-1])
        yield s

t = prefixes('both')
next(t)

next(t) は 'b' を返します。これがなぜなのか、私は混乱しています。なぜなら、yield fromステートメントをたどると、最終的には終了し、yield from prefixes('')None が返されるからです。私の他のすべてのテストでは、yield from None は TypeError を発生させます。代わりに、これは無視されているようで、 prefixes('b') は次の yield ステートメントに移動します (? なぜそれを行うのですか?) 'b' を生成します...理由についてのアイデアはありますか? 説明をいただければ幸いです。

4

2 に答える 2