質問は、以下のどれでしょうか。
- fstringについて調べていたら、yield_exprという文法定義を見つけたが、それが何者かが分からない
- yield_exprという文法定義については知っているが、それが明示的にfstringの定義に現れる理由が分からない
- yield_exprという文法定義については知っているが、それをfstring内で使うケースが思いつかない
上の質問であれば、公式ドキュメントのyield_expressionの説明を参照してください (同じページの使用例も参照)。また「Python Yield式」で検索すれば、別の解説や使用例も見つかります。
中央の質問については、fstringの{}の直下にyieldを括弧無しで書けることを明示するためだと思われます。式内にyieldを書く場合は、(yield 1)
のように括弧で囲む必要がありますが、特定の場所(代入文の右辺など)では括弧無しにすることが許されます。
下の質問の場合、私では分からないので、他の方にお願いします。(単純な使用例なら出せますが、意味がある使い方とは言えません)
def test():
return f'{yield 1}, {yield 2}'
try:
a = test()
print(next(a))
print(a.send('abc'))
a.send('def')
except StopIteration as s:
print(s.value)