[Python-Dev] Rationale for sum()'s design?

John Williams jrw at pobox.com
Wed Mar 16 18:37:21 CET 2005


Michael Walter wrote:
> On Tue, 15 Mar 2005 07:47:20 -0800, Guido van Rossum
> <gvanrossum at gmail.com> wrote:
> 
>>But I'm not so sure now. Thinking ahead to generic types, I'd like the
>>full signature to be:
>>
>>  def sum(seq: sequence[T], initial: T = 0) -> T.
> 
> 
> Would this _syntax_ work with generic types:
> 
>   def sum(seq: sequence[T], initial: T = T()) -> T.

This doesn't make sense with existing semantics because default 
arguments are evaluated when the function is defined, but T() can't be 
evaluated until the function is called.  I'm not sure there's a way 
around that problem without turning default arguments into a trap for 
the unwary.

jw


More information about the Python-Dev mailing list