[Python-Dev] [PEP] += on return of function call result

Luke Kenneth Casson Leighton lkcl@samba-tng.org
Wed, 2 Apr 2003 09:07:26 +0000


example code:

log = {}

	for t in range(5):
		for r in range(10):
			log.setdefault(r, '') += "test %d\n" % t

pprint(log)

instead, as the above is not possible, the following must be used:

from operator import add

 ...
      ...
	      ...

			add(log.setdefault(r, ''), "test %d\n" % t)

... ARGH!  just checked - NOPE!  add doesn't work.
and there's no function "radd" or "__radd__" in the
operator module.


unless there are really good reasons, can i recommend allowing +=
on return result of function calls.

i cannot honestly think of or believe that there is a reasonable
justification for restricting the += operator.

append() on the return result of setdefault works absolutely
fine, which is GREAT because you have no idea how long i have
been fed up of not being able to do this in one line:

	log = {}
	log.setdefault(99, []).append("test %d\n" % t)

l.