Pythonでは、関数内で生成された値を保持するためにいくつかの方法があります。ここでは、その中から主に使われる2つの方法を紹介します。
グローバル変数を使用する
一つ目の方法は、グローバル変数を使用することです。以下にその例を示します。
result = []
def calculate(x, count):
global result
count += 1
if count == 4:
return
else:
result.append(x * 2)
calculate(result[-1], count)
calculate(2,0)
print(result) # 出力: [4, 8, 16]
このコードでは、calculate
関数が再帰的に呼び出され、その結果がグローバル変数result
に保持されます。
しかし、グローバル変数の使用は一般的には避けられます。なぜなら、グローバル変数はプログラム全体からアクセス可能であるため、予期しない変更が行われる可能性があるからです。
関数の引数としてリストを渡す
二つ目の方法は、関数の引数としてリストを渡し、そのリストに結果を格納することです。以下にその例を示します。
results = []
def calculate(results, x, count):
count += 1
if count == 4:
return
else:
results.append(x * 2)
calculate(results, result[-1], count)
calculate(results, 2, 0)
print(results) # 出力: [4, 8, 16]
このコードでは、calculate
関数が再帰的に呼び出され、その結果が引数として渡されたリストresults
に保持されます。この方法は、グローバル変数を使用する方法よりも推奨されます。
以上がPythonで関数の値を保持する主な方法です。適切な方法を選択することで、コードの可読性と保守性を向上させることができます。