擅长:python、mysql、java
<p>在Python中,这是一个常见的错误,直到您了解它的工作方式,并且
他们学会了凭直觉避免这种情况。在</p>
<p>问题是<code>__init__</code>方法的默认参数
<code>wordlist</code>,它是由<code>[ ]</code>表示的空列表,只创建一次,
解析类主体时。在</p>
<p>之后,每次调用<code>__init__</code>方法(自动进行
在对象实例化时)传递同一个对象-单个空列表-
作为函数的参数。因此,在上面的示例中,所有
<code>Node</code>将指向同一个列表-这就是您检测到的问题。在</p>
<p>避免问题的正确模式如下:</p>
<pre><code>class Node(object):
def __init__(self,wordList=None):
if wordlist is None: wordlist = []
self.wordList = wordList
</code></pre>
<p>这样,在每次<code>__init__</code>调用时都会创建一个新的空列表。在</p>