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

Reply via email to