John Henry wrote: > On Feb 21, 1:48 pm, John Henry <[EMAIL PROTECTED]> wrote: >> On Feb 21, 1:43 pm, mrstephengross <[EMAIL PROTECTED]> wrote: >> >> >> >>> Hi all. In C, an assignment statement returns the value assigned. For >>> instance: >>> int x >>> int y = (x = 3) >>> In the above example, (x=3) returns 3, which is assigned to y. >>> In python, as far as I can tell, assignment statements don't return >>> anything: >>> y = (x = 3) >>> The above example generates a SyntaxError. >>> Is this correct? I just want to make sure I've understood the >>> semantics. >>> Thanks, >>> --Steve >> That's true, and I am happy that they decided to make that a syntax >> error. > > BTW: The less obvious issues when coming from the C world are Python > syntax like these: > > y = x = 3 > > a = 4 > > y = x = a > > print x,y > > a = 5 > > print x,y
That's the same behavior I would expect in C, on the grounds that C assignments do bit-wise copies. What I found confusing at first was that the same variable will either directly store or merely refer to an object, depending on the type of the object: >>> a = [ 'hello' ] >>> y = x = a >>> a += [ 'world' ] >>> print x, y ['hello', 'world'] ['hello', 'world'] -- http://mail.python.org/mailman/listinfo/python-list