¿Por qué manejar múltiples excepciones requiere una tupla y no una lista?

Considere el siguiente ejemplo:

def main_list(error_type):

    try:
        if error_type == 'runtime':
            raise RuntimeError("list error")
        if error_type == 'valueerror':
            raise ValueError("list error")

    except [RuntimeError, ValueError] as e:
        print str(e)

def main_tuple(error_type):

    try:
        if error_type == 'runtime':
            raise RuntimeError("tuple error")
        if error_type == 'valueerror':
            raise ValueError("tuple error")

    except (RuntimeError, ValueError) as e:
        print str(e)


main_tuple('runtime')
main_tuple('valueerror')

main_list('runtime')
main_list('valueerror')

La tupla es la forma correcta de manejar múltiples tipos de excepción. El uso de una lista para los tipos de excepciones múltiples no hace que ninguno de ellos sea manejado.

Me pregunto por qué la sintaxis de Pythonrequiere una tupla para múltiples tipos de excepción. losdocs digamos que usa una tupla, por lo que tal vez simplemente "nunca se implementó usando una lista en lugar de una tupla".

Me parece razonable que una lista también pueda usarse en esta situación, al menos conceptualmente.

¿Hay alguna razón por la cual Python usa una tupla en lugar de una lista para esta situación?

Respuestas a la pregunta(2)

Su respuesta a la pregunta