Python 2.0b1 is released!

John W. Baxter jwbnews at scandaroon.com
Wed Sep 6 10:53:16 EDT 2000


In article <Pine.LNX.4.21.0009061312290.24593-100000 at fep132.fep.ru>, 
phd at mail2.phd.pp.ru wrote:

> On 6 Sep 2000, Bernhard Reiter wrote:
> > >   - Augmented assignment, e.g. x += 1
> > 
> > I cannot resist saying that I still consider this an archane "C" -like
> > feature which should be better solved with the replace or macro
> > function of the editor. I always liked the clearness of the normal
> > 	x = x + 1
> 
>    Do you prefer
> dict["key"].attr = dict["key"].attr + 12
>    instead of
> dict["key"].attr += 12
>    ?
> 
>    The second is cleaner and faster, right?
> 

Many people think the augmented assignment form is cleaner.  (I don't 
happen to be one of them...I'd probably do the above with += in throw 
away code but not in a real project.  (Unless it really is faster and is 
executed a lot.)  One can offer more horrendous examples in which I 
would use the augmented assignment form--or do something else entirely.

It may or may not be faster...it (that is, the C equivalent, which means 
something other than a dictionary) hasn't been faster in decent C 
implementations in many years.  It *was* faster on a particular 
processor [PDP-11] (and probably others) with early C compiler 
implementations.  [Check the generated code...these days the two forms 
tend to produce the same code.]

But there is a good chance that in the above Python example the 
augmented assignment is indeed faster.

And, I suspect, this sort of thing doesn't change (today's challenge:  
come up with a problem statement in which the following makes sense ;-)):

dict["key"] = dict.get("key", 244) + 12

   --John

-- 
John W. Baxter   Port Ludlow, WA USA  jwbnews at scandaroon.com



More information about the Python-list mailing list