title: Python constructor and default value
body: <p>Somehow, in the Node class below, the <code>wordList</code> and <code>adjacencyList</code> variable is shared between all instances of Node.</p>
  
  <pre><code>&gt;&gt;&gt; class Node:
  ...     def __init__(self, wordList = [], adjacencyList = []):
  ...         self.wordList = wordList
  ...         self.adjacencyList = adjacencyList
  ... 
  &gt;&gt;&gt; a = Node()
  &gt;&gt;&gt; b = Node()
  &gt;&gt;&gt; a.wordList.append("hahaha")
  &gt;&gt;&gt; b.wordList
  ['hahaha']
  &gt;&gt;&gt; b.adjacencyList.append("hoho")
  &gt;&gt;&gt; a.adjacencyList
  ['hoho']
  </code></pre>
  
  <p>Is there any way I can keep using the default value (empty list in this case) for the constructor parameters but to get both <code>a</code> and <code>b</code> to have their own <code>wordList</code> and <code>adjacencyList</code> variables?</p>
  
  <p>I am using python 3.1.2.</p>