[Python-Dev] [PEP] += on return of function call result (original) (raw)

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.