Python 2.0b1 is released!

Alex Martelli aleaxit at yahoo.com
Fri Sep 8 10:05:35 EDT 2000


"Toby Dickenson" <mbel44 at dial.pipex.net> wrote in message
news:n2khrso0khf70shv1cm6aainnmvolgo89i at 4ax.com...
> nospam at ktgroup.co.uk (Pat Knight) wrote:
>
> >Sadly, it now means there's *more than one way to do it* (x += 1 and
> >x = x +1). I understand the two might have slightly different semantics
in
> >some cases?
>
> Which makes only one way to do each. Not so bad ;-)

Indeed, perfect.  If you want to make "sure" that, whatever object
x is now referring to, that object is not modified (so other
references, if any, are not affected), then use the form:
    x = x+1

(I use quotes around "sure" because object implementers ARE allowed
to do funny things -- such as modify an object on whatever excuse --
but that would surely be a violation of 'principle of least surprise').


If you do not care about what happens to other references (if any),
then use the form:
    x += 1
which can be either equivalent to the above, or, more efficient, if
x is currently bound to a mutable object.  I think this is the normal
case, but it's nice to have both options available.


Alex






More information about the Python-list mailing list