Ian Bicking wrote: > > lst = ['A', 'b', 'C'] > lst.sort(key=partialmethod('lower')) > > Which sorts by lower-case. Of course you can use str.lower, except > you'll have unnecessarily enforced a type (and excluded Unicode). So > you are left with lambda x: x.lower().
For this specific case, you can use string.lower (which is exactly what the lambda function does). As for the more general proposal: -1 on more places to pass strings to denote method/function/class names. These are ugly to type. What I think you want is not a partial method, instead, you want to turn a method into a standard function, and in a 'virtual' way. So I would propose the syntax lst.sort(key=virtual.lower) # where virtual is functional.virtual As for extending PEP 309: This PEP deliberately abstained from other ways of currying, and instead only introduced the functional module. If you want to see "lazy functions" in the standard library, you should write a new PEP (unless there is an easy agreement about a single right way to do this, which I don't see). Regards, Martin P.S. It's not even clear that this should be added to functional, as attrgetter and itemgetter are already in operator. But, perhaps, they should be in functional. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com