On Thu, Apr 16, 2009 at 2:57 PM, Raymond Hettinger python@rcn.com wrote:
I think the default arg is a bridge too far. This is evidenced by the complexity of the suggested implementations (remember the zen of python).
FWIW, the following works good enough for my use cases:
def min2(*args, **kwds): if 'default' not in kwds: return min(*args, **kwds) default = kwds.pop('default') try: return min(*args, **kwds) except ValueError, ex: if 'arg is an empty sequence' in ex.message: return default raise
As an aside, it would be nice If min/max start raising a more narrow ValueError subtype, say EmptyIterableError, so that hacks such as checking the exception message are not necessary.
George