回答編集履歴

1

補足説明追加

2022/11/03 06:08

投稿

otn
otn

スコア84661

test CHANGED
@@ -4,6 +4,9 @@
4
4
  for func in function_list1:
5
5
  func(0)
6
6
  ```
7
+ 質問文のコードでは、lambda呼び出し時に参照される`b_itr`は、lambdaの外側で全lambdaに共通した変数です。forが終わった時点では`b_itr`の値は1なのでどのlambdaから参照しても1です。
8
+ 上記のコードでは、内側のlambda呼び出し時に参照される`b_val`は、外側のlambdaローカルな変数(引数)で、各lambdaに固有の変数です(外側のlambda呼び出し時点での`b_itr`の値で初期化されている)。わかりやすさのために変数名を変えましたが同じ変数名でももちろんOKです。
9
+
7
10
  あるいは、それ専用の機能を使って、
8
11
  ```Python
9
12
  import functools