[Python-Dev] In-place operators

"Martin v. Löwis" martin at v.loewis.de
Tue Mar 17 23:31:02 CET 2009


> I'm sure that consistency/completeness/safe_vs_sorry was the reason they
> were added.  But, if they aren't useful, they never should have been
> (IMO).

Why is that? [you are then giving a reason:]

> It wastes the time of people who try to use them and then
> find-out that they don't act as expected

What people in particular? Certainly, the doc string is wrong:

  isub(a, b) -- Same as a -= b.

That's not quite the same - you would have to write

  a = isub(a, b) -- Same as a -= b.

(right?) However, anybody who understands what isub does already
knows that property. I can't imagine users browsing through the
operator module and thinking "hmm, what might that isub function
do?".

> or that you can't use them with containers s[k] += x etc.) 

Why not?

  s[k] = iadd(s[k], x)

works fine, no?

> Maybe someone somewhere has some interesting use for
> these in-place operator function.  I hope so.

It could be important if you want apply it to mutable objects, i.e.
where the assignment doesn't do anything.

Regards,
Martin


More information about the Python-Dev mailing list