sum and strings

Fredrik Lundh fredrik at pythonware.com
Thu Aug 24 12:24:19 EDT 2006


Tim Chase wrote:

> The interpreter is clearly smart enough to recognize when the 
> condition occurs such that it can throw the error...thus, why not 
> add a few more smarts and have it simply translate it into 
> "start+''.join(sequence)" to maintain predictable behavior 
> according to duck-typing?

"join" doesn't use __add__ at all, so I'm not sure in what sense that 
would be more predictable.  I'm probably missing something, but I cannot 
think of any core method that uses a radically different algorithm based 
on the *type* of one argument.

besides, in all dictionaries I've consulted, the word "sum" means 
"adding numbers".  are you sure it wouldn't be more predictable if "sum" 
converted strings to numbers ?

(after all, questions about type errors like "cannot concatenate 'str' 
and 'int' objects" and "unsupported operand type(s) for +: 'int' and 
'str'" are a *lot* more common than questions about sum() on string lists.)

</F>




More information about the Python-list mailing list