Awkward python class behaviour?
<p>I have the following simple code:</p>

<pre><code>class Node:
    pass

def make_node(value):
    n = Node
    n.value = value
    return n

if __name__ == '__main__':
    list = range(100)
    random.shuffle(list)
    nodes = []
    for i in range(len(list)):
        nodes.append(make_node(list[i]))

    for n in nodes:
        print n.value
</code></pre>

<p>Upon printing the value at each of the nodes, they are all identical.  It seems that each "new node" i built simply overwrites the value of all of the previous ones.  Why are these not being set completely separately, and how can I fix it?</p>
