重複の可能性:
Pythonの「驚き最小の原則」:可変のデフォルト引数
SOまたはpythonで答えを見つけようとしましたが、参照を取得できませんでした。
import random
def test(headers=[('Application','Value')]):
print headers
headers.append(('Random',random.randint(0,100)))
print headers
test()
test()
test()
私はこの出力を取得し続けます
[('Application', 'Value')]
[('Application', 'Value'), ('Random', 8)]
[('Application', 'Value'), ('Random', 8)]
[('Application', 'Value'), ('Random', 8), ('Random', 46)]
[('Application', 'Value'), ('Random', 8), ('Random', 46)]
…………
このコードを実行すると、関数パラメーターであるにもかかわらず、Pythonがヘッダーの値を保持しているように見えます。Java、.NET、およびphpから来た私は、まだこれに対するロジックを認識していません。
誰かが私を啓発できますか?