擅长:python、mysql、java
<p>可变的默认变量在其他方面如此漂亮的Python中是众所周知的垃圾。在</p>
<p>例如</p>
<p><a href="http://eli.thegreenplace.net/2009/01/16/python-insight-beware-of-mutable-default-values-for-arguments/" rel="nofollow noreferrer">http://eli.thegreenplace.net/2009/01/16/python-insight-beware-of-mutable-default-values-for-arguments/</a></p>
<p><a href="https://stackoverflow.com/questions/1132941/least-astonishment-in-python-the-mutable-default-argument">"Least Astonishment" and the Mutable Default Argument</a></p>
<p><a href="http://pythonconquerstheuniverse.wordpress.com/2012/02/15/mutable-default-arguments/" rel="nofollow noreferrer">http://pythonconquerstheuniverse.wordpress.com/2012/02/15/mutable-default-arguments/</a></p>
<p>解决方案包括</p>
<ul>
<li><p>初始化<code>__init__</code>-不要使用类级别的变量,除非你真正指的是全局变量</p></li>
<li><p>传入<code>None</code>,并在第一次访问时将其转换为list</p></li>
</ul>