[M.-A. Lemburg]
Wouldn't a generic builtin for these kinds of things be better, e.g. a function returning a default value in case an exception occurs... something like:
tryexcept(list.pop(), IndexError, default)
which returns default in case an IndexError occurs. Don't think this would be much faster that the explicit try:...except: though...
As a function (builtin or not), tryexcept will never get called if list.pop() raises an exception. tryexcept would need to be a new statement type, and the compiler would have to generate code akin to try: whatever = list.pop() except IndexError: whatever = default If you want to do it in a C function instead to avoid the Python-level exception overhead, the compiler would have to wrap list.pop() in a lambda in order to delay evaluation until the C code got control; and then you've got worse overhead <wink>. generalization-is-the-devil's-playground-ly y'rs - tim