擅长:python、mysql、java
<p>改变这个</p>
<pre><code>class TestData:
def __init__(self, t=[], x=[], y=[]):
self.t = t
self.x = x
self.y = y
</code></pre>
<p>为了这个</p>
<pre><code>class TestData:
def __init__(self, t=None, x=None, y=None):
if t is None:
t = []
if x is None:
x = []
if y is None:
y = []
self.t = t
self.x = x
self.y = y
</code></pre>
<p>通常,当我们使用列表或字典作为函数的默认参数时,我们希望程序在每次调用函数时都创建一个新的列表或字典。然而,Python并不是这样做的。第一次调用函数时,Python会为列表或字典创建一个持久对象,因为Python中的函数是一级对象。以后每次调用函数时,Python都会使用第一次调用函数时创建的持久对象</p>
<p>引用:<a href="https://effbot.org/zone/default-values.htm" rel="nofollow noreferrer">https://effbot.org/zone/default-values.htm</a></p>