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' を生成します...理由についてのアイデアはありますか? 説明をいただければ幸いです。