argument matching question

Scott David Daniels Scott.Daniels at Acm.Org
Fri Aug 26 12:01:57 EDT 2005


Leif K-Brooks wrote:
> Learning Python wrote:
> 
>>A code like this:
>>
>>def adder(**varargs):
>>      sum=varargs[varargs.keys()[0]]
>>      for next in varargs.keys()[1:]:
>>                sum=sum+varargs[next]
>>      return sum

For that function, call:
     print adder(first=1, second=2, third=3)

A better function definition for python 2.4 would be:
     def adder(**varargs):
         return sum(varargs.values())
And a better function definition without using sum would be:
     def adder(**varargs):
         values = varargs.values()
         if values:
             total = values[0]
             for element in values[1:]:
                 total += element
             return total
         else:
             return 0

--Scott David Daniels
Scott.Daniels at Acm.Org



More information about the Python-list mailing list