title: In python, append child to root.children(list), and child.children(list) changed?
body: <p>code:</p>
  
  <pre><code>class Node:
      def __init__(self, key, children=[]):
          self.key = key
          self.children = children
  
      def __repr__(self):
          return self.key
  </code></pre>
  
  <p>execute:</p>
  
  <pre><code>root = Node("root")
  child = Node("child")
  root.children.append(child)
  print child.children
  print root.children[0].children
  </code></pre>
  
  <p>result:</p>
  
  <pre><code>[child]
  [child]
  </code></pre>
  
  <p>This is really weird, why?</p>
  
  <p>Python's version is 2.7.2.</p>