Q&A
実現したいこと
- 再帰関数の呼び出し回数がintとlistの2つのカウンターで異なる原因を教えていただきたいです。
前提
Pythonで再帰関数を実装してその呼び出し回数をカウントしようとしています。その際にカウンターをlistとintの2種類で試したところ結果が異なりました。そこでどのように2種類のカウンターが動作しているかを以下の簡易的なテスト関数で調査したところ2つの間で呼び出し回数が異なることを知りました。しかし、なぜこの違いが生じるのかが分かりません。どなたかご教示頂けると嬉しいです。
発生している問題・エラーメッセージ
$ python count_recursive_func_with_list.py ---------------- [] [1] ---------------- ---------------- [1] [1, 1] ----------------
$ python count_recursive_func_with_int.py ---------------- 0 1 ---------------- ---------------- 1 2 ---------------- ---------------- 1 2 ---------------- ---------------- 1 2 ----------------
該当のソースコード
Python
1# count_recursive_func_with_list.py 2def test(counter): 3 if len(counter) == 2: 4 return 5 print("----------------") 6 print(counter) 7 counter.append(1) 8 print(counter) 9 print("----------------") 10 test(counter) 11 test(counter) 12 test(counter) 13 14counter = [] 15test(counter)
Python
1# count_recursive_func_with_int.py 2def test(counter): 3 if counter == 2: 4 return 5 print("----------------") 6 print(counter) 7 counter += 1 8 print(counter) 9 print("----------------") 10 test(counter) 11 test(counter) 12 test(counter) 13 14counter = 0 15test(counter)
試したこと
counter上限を2以外に試しても同じく差が生じました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
MacBook Pro 13-inch, M1, 2020
OS: Ventura 13.01
Python3.9.6
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2023/03/18 01:43 編集
2023/03/18 02:10
2023/03/18 02:52 編集