これはPythonである呼び出されたときに上に運びます。変数関数が複数回
だから、私は一種の機能を定義しています
その後def function(var1, var2 = [[], 0]):
# some code that changes both var1 and var2
return (var2, var1)
、私はループのために作ら:
for x in range(10):
print(function(x))
私は、関数の内部var2
にカップルの変更を行います。私が抱えている問題は、var2
の内部で起こった変更が、x
を含むforループの各次の繰り返しに対して引き継ぐことです。なぜそれがそうするのか分かりません。私が修正した方法は、代わりに、これを呼んでいる:
for x in range(10):
print(function(x, [[], 0]))
は、しかし、私は(ある[[], 0]
VAR2たびに指定する)これを実行する必要がありますする必要はありません。それが役立つ可能性がある場合
また、関数が再帰的です。それはうまく動作し、ちょうどvar2
が引き継ぎます。私が起こっためにこれを防ぐにはどうすればよい
?私が起こっためにこれを防ぐにはどうすればよい
デフォルトの可変引数var2 = [[]、0] 'があります。デフォルトは一度だけインスタンス化されます。チャンスがあれば、それは次のコールでも変更されます。安全であるためには、タプルのような変更不可能なデフォルト値を使用してください。 –
適切なコードを示してください。関数内でvar2に対して行った変更 –
リストをインプレースで変更して返します。通常は、どちらか一方が行います。この機能には突然変異が必須であるか? – tdelaney