[Python-Dev] [PEP] += on return of function call result (original) (raw)
Samuele Pedroni pedronis@bluewin.ch
Mon, 19 May 2003 18:07:08 +0200
- Previous message: [Python-Dev] [PEP] += on return of function call result
- Next message: [Python-Dev] [PEP] += on return of function call result
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
At 12:53 19.05.2003 +0000, Luke Kenneth Casson Leighton wrote:
jeff,
beat bolli's code example: count[word] = count.get(word, 0) + 1 i think best illustrates what issue you are trying to raise. okay, we know there are two issues so let's give an example that removes one of those issues: count = {} count[word] = count.get(word, []) + ['hello'] the issue is that the difference between the above 'hello' example and this: count.get(word, []) += ['hello'] is that you don't know what STORE to use after the use of get() in the second example, but you do in the first example because it's explicity set out. so, does this help illustrate what might be done? if it's possible to return a result and know what should be done with it, then surely it should be possible to return a result from a += "function" and know what should be done with it? l.
def refiadd(r,v): # r+=v, r is a reference, not a an lvalue ... if hasattr(r.class,'iadd'): ... r.class.iadd(r,v) ... else: ... raise ValueError,"non-sense" ... greetings={} refiadd(greetings.setdefault('susy',[]),['hello']) # greetings.setdefault('s usy',[]) += ['hello'] refiadd(greetings.setdefault('susy',[]),['!']) # greetings.setdefault('susy' ,[]) += ['!'] greetings {'susy': ['hello', '!']} refiadd(greetings.setdefault('betty',1),1) # greetings.setdefault('susy',1) += 1 Traceback (most recent call last): File "", line 1, in ? File "", line 5, in refiadd ValueError: non-sense
regards.
- Previous message: [Python-Dev] [PEP] += on return of function call result
- Next message: [Python-Dev] [PEP] += on return of function call result
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]