On Tue, Dec 4, 2012 at 9:38 AM, Satyajit Ranjeev
<[email protected]> 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
[email protected]
http://mail.python.org/mailman/listinfo/bangpypers