Question about consistency in python language

Terry Reedy tjreedy at udel.edu
Fri Sep 9 23:14:11 CEST 2005


"Kay Schluehr" <kay.schluehr at gmx.net> wrote in message 
news:1126247836.678936.233170 at o13g2000cwo.googlegroups.com...
> On the other hand there exists no sorted() method for tuples or lists
> like join() for strings but it is implemented as a function in Python24
> that returns a new sorted container. I consider this as an
> inconsistency across builtin types.

The sorted function is not a list method because it is not only a list 
function or even only a tuple and list function or even only a string, 
tuple, list, array, or dict function.  Its input is **any** iterable.  The 
only way to have it both be general and a method would be to have an 
iterable type and to require that all iterables inherit from that type to 
reap the benefit of being an iterable.  All the itertools functions are 
also functions and not methods of a hypothetical iterable type.  'Iterable' 
is a duck type and hence functions thereof must be functions and not 
methods.

Terry J. Reedy






More information about the Python-list mailing list