On Tue, Dec 4, 2012 at 9:38 AM, Satyajit Ranjeev <satyajit.ranj...@gmail.com> wrote: > It is the way Python handles objects. Unlike variables in C/C++ where a > variable can point to an address location in the memory Python uses variables > to point to an object. > > Now in the first case what you are doing is pointing x to the object 1 in x=1. > When you print x it just prints 1. When you try to assign x to x+1 you are > pointing x in the class's scope to a new object which is x + 1 or 2. And > that's why you get the weird results.
Well, *the class scope* is quite different from function scope. The same code that works in a class, fails in a function. x = 1 class Foo: x = x + 1 def f(): x = x + 1 > > The other cases can be expanded on the same basis. Did you try the other ones? Anand _______________________________________________ BangPypers mailing list BangPypers@python.org http://mail.python.org/mailman/listinfo/bangpypers