Why does my function keep returning a longer list?
<p>I opened my python interpreter, coded up and ran the following function.</p>

<pre><code>&gt;&gt;&gt; def crazy_function(my_list=[]):
...     my_list.append(0)
...     return my_list
... 
&gt;&gt;&gt; crazy_function()
[0]
&gt;&gt;&gt; crazy_function()
[0, 0]
&gt;&gt;&gt; crazy_function()
[0, 0, 0]
&gt;&gt;&gt; crazy_function()
[0, 0, 0, 0]
&gt;&gt;&gt; crazy_function()
[0, 0, 0, 0, 0]
&gt;&gt;&gt; crazy_function()
[0, 0, 0, 0, 0, 0]
&gt;&gt;&gt; crazy_function()
[0, 0, 0, 0, 0, 0, 0]
&gt;&gt;&gt; 
</code></pre>

<p>What is going on? Why does the list returned by the function keep getting longer the more I call the function? Shouldn't a new local list be created every time the function is called?</p>
