擅长:python、mysql、java
<p>其他答案已经提供了所要求的直接解决方案,但是,由于这是新Python程序员的一个常见陷阱,因此有必要添加Python为何以这种方式运行的解释,这在<a href="https://docs.python-guide.org/writing/gotchas/#mutable-default-arguments" rel="noreferrer"><em>Mutable Default Arguments</em></a>下的<a href="https://docs.python-guide.org/writing/gotchas/" rel="noreferrer"><em>The Hitchhikers Guide to Python</em></a>中得到了很好的总结:</p>
<blockquote>
<p>Python's default arguments are evaluated <em>once</em> when the function is defined, not each time the function is called (like it is in say, Ruby). This means that if you use a mutable default argument and mutate it, you <em>will</em> and have mutated that object for all future calls to the function as well.</p>
</blockquote>