Pythonインタープリターを開き、コード化して次の関数を実行しました。
>>> def crazy_function(my_list=[]):
... my_list.append(0)
... return my_list
...
>>> crazy_function()
[0]
>>> crazy_function()
[0, 0]
>>> crazy_function()
[0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0, 0]
>>> crazy_function()
[0, 0, 0, 0, 0, 0, 0]
>>>
何が起こっている?関数を呼び出すほど、関数によって返されるリストが長くなるのはなぜですか?関数が呼び出されるたびに新しいローカルリストを作成するべきではありませんか?