Python 3.11 ジェネレータ関数内でprint関数を使っても標準出力されない
Q&A
Closed
質問を見ていただきありがとうございます。
解決したいこと
題意の通りです。
「該当するソースコード」のsample_generator()関数を実行しても、
print関数を実行している箇所が標準出力されません。
これを標準出力されるように修正したいです。
以下の可能性を考えましたが、自分では解決方法を見つけられませんでした。
- ジェネレータ関数内で標準出力するには何らかの回避策が必要
- print関数に問題があるので別の関数を使う
- 自分の実行環境に何らかの原因がある
当方初心者のため、知識に不足しているところがあるかもしれません。
もし分かる方がいらっしゃいましたら、教えていただきたいです。
何卒よろしくお願いいたします。
該当するソースコード
code.py
def sample_generator():
print('code before yield "a"')
yield "a"
print('code before yield "b"')
yield "b"
print('code before yield "c"')
yield "c"
print("code after yields")
def sample():
"""
こちらは標準出力される。
"""
print('hogehoge')
if __name__ == "__main__":
sample_generator()
sample_generator()
sample_generator()
sample_generator()
sample()
ターミナルから実行した結果
$ python code.py
hogehoge
実行環境
OS: WSL2 Ubuntu
Python: pyenvでインストールしたpython 3.11で作成した仮想環境(Python 3.11.1)
0