- publishing free software manuals
Python Language Reference Manual
by Guido van Rossum and Fred L. Drake, Jr.
Paperback (6"x9"), 120 pages
ISBN 0954161785
RRP £12.95 ($19.95)

Sales of this book support the Python Software Foundation! Get a printed copy>>>

6.3 Assignment statements

Assignment statements are used to (re)bind names to values and to modify attributes or items of mutable objects:

assignment_stmt ( target_list "=" )+
expression_list
target_list target ( "," target )* [","]
target identifier
| "(" target_list ")" | "[" target_list "]" | attributeref | subscription | slicing

(See section 5.3 for the syntax definitions for the last three symbols.)

An assignment statement evaluates the expression list (remember that this can be a single expression or a comma-separated list, the latter yielding a tuple) and assigns the single resulting object to each of the target lists, from left to right.

Assignment is defined recursively depending on the form of the target (list). When a target is part of a mutable object (an attribute reference, subscription or slicing), the mutable object must ultimately perform the assignment and decide about its validity, and may raise an exception if the assignment is unacceptable. The rules observed by various types and the exceptions raised are given with the definition of the object types (see section 3.3).

Assignment of an object to a target list is recursively defined as follows.

Assignment of an object to a single target is recursively defined as follows.

(In the current implementation, the syntax for targets is taken to be the same as for expressions, and invalid syntax is rejected during the code generation phase, causing less detailed error messages.)

WARNING: Although the definition of assignment implies that overlaps between the left-hand side and the right-hand side are `safe' (for example ‘a, b = b, a’ swaps two variables), overlaps within the collection of assigned-to variables are not safe! For instance, the following program prints ‘[0, 2]’:

    x = [0, 1]
    i = 0
    i, x[i] = 1, 2
    print x
ISBN 0954161785Python Language Reference ManualSee the print edition