"When you bind (on either a class or an instance) an attribute whose
name is not special...you affect only the __dict__ entry for the
attribute(in the class or instance, respectively)."

In light of that statement, how would one explain the output of this
code:

class Test(object):
    x = [1, 2]

    def __init__(self):
        self.x[0] = 10

print Test.__dict__    #{.....'x':[1,2]....}
t = Test()
print t.x              #[10, 2]
print t.__dict__       #{}
print Test.__dict__    #{.....'x':[10,2]...}

It looks to me like self.x[0] is binding on an instance whose
attribute name is not special, yet it doesn't affect any __dict__
entry for the attribute in the instance--instead it is affecting a
__dict__ entry for the attribute in the class.

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to