Here&#x27;s an example of why mborch&#x27;s statement is true:<p><pre><code>    class A:
        def __init__(self, value=0):
            self.b = value
        def __str__(self):
            if self.b == 0:
                global a
                a = A(1)
            elif self.b == 1:
                import __builtin__, __main__
                __builtin__.a = 2
                del __main__.a
            return str(self.b)
    a = A()
    
    def foo():
        print a
        print a
        print a
        
    foo()

</code></pre>
This generates:<p><pre><code>    1
    2
    3
</code></pre>
but it&#x27;s a different &#x27;a&#x27; in all three cases; the last isn&#x27;t even from the module&#x27;s namespace.