擅长:python、mysql、java
<p>因为默认值是对默认值的引用,所以不会每次都创建它。
因此,如果您运行这样的示例:</p>
<pre><code>def f(x=[]):
x.append(1)
return x
print(f()) #prints [1]
print(f()) #prints [1,1]
</code></pre>
<p>解决方法可以是使用不可变的元组并将其转换为列表:</p>
<pre><code>def f(x=()):
if not isinstance(x, list):
input = list(x)
else:
input = x
input.append(1)
return input
print(f()) #[1]
print(f()) #[1]
</code></pre>
<p>这样就行了</p>