language design question

Paul Rubin http
Sun Jul 9 18:51:32 EDT 2006


"Terry Reedy" <tjreedy at udel.edu> writes:
> Consider
> >>> map(len, ('abc', (1,2,3), [1,2], {1:2}))
> [3, 3, 2, 1]
> 
> Now try to rewrite this using methods (member functions).

[x.len() for x in ('abc', (1,2,3), [1,2], {1:2})]

> >  - Why doesn't sort() return a value?
> 
> Because it is an in-place mutation method and Guido decided that such 
> methods should return None rather that the mutated object to lessen bugs. 
> It is a tradeoff that has been debated ever since ;-)

Nah, we have sorted() now, a functionalista victory ;-)

> I presume the new-in-2.5 default dicts will do the same, and also work when 
> the key does not exist and the default is a list.

Man, it's hard to keep track of these new features.  Default dicts do
sound like a good addition; I've used those d.setdefault/d.get idioms
way too often.



More information about the Python-list mailing list