Op 2005-11-03, venk schreef <[EMAIL PROTECTED]>: > You see, > The seen behavior is due to the result of python's name > binding,scoping scheme.
I know what causes the behaviour. But I still think it is not sane behaviour. > ... > > the same thing happens in the case of b.a = b.a + 2 .... search for b.a > not found, read the value from the enclosing scope (of the class > object).... then assign b.a to the local scope, with the value 3. This is an explanation depending on a specific implementation. Now can you give me a language design argument that supports the idea that in "b.a = b.a + 2" b.a refers to two different objects. And even if you could do that, can you give such an argument that in "b.a += 2" that one occurence of b.a should refer to two different objects. Suppose I have code like this: for i in xrange(1,11): b.a = b.a + i Now the b.a on the right hand side refers to A.a the first time through the loop but not the next times. I don't think it is sane that which object is refered to depends on how many times you already went through the loop. -- Antoon Pardon -- http://mail.python.org/mailman/listinfo/python-list