ご教示願います
「ソースコード」を実行すると、「期待した出力」のように出力されず、「実際の出力」のように出力されてしまう理由・仕組みを知りたいです。
ご教示よろしくお願いいたします。
ソースコード
Python
1func_list = [] 2 3for i in range(3): 4 func_list.append(lambda: print(i)) 5 6for func in func_list: 7 func()
期待した出力
0 1 2
実際の出力
2 2 2
【参考】lambda関数を用いない場合
以下の場合は期待通りに出力されます。
Python
1func_list = [] 2 3for i in range(3): 4 func_list.append(print(i)) 5for func in func_list: 6 func

回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/05/24 03:25 編集