Почему обработка нескольких исключений требует кортежа, а не списка?

Рассмотрим следующий пример:

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')

Кортеж является правильным способом обработки нескольких типов исключений. Использование списка для нескольких типов исключений не требует обработки.

Мне интересно, почему синтаксис Pythonтребует кортеж для нескольких типов исключений.документы скажем, что он использует кортеж, поэтому, возможно, он просто «никогда не был реализован с использованием списка вместо кортежа».

Мне кажется разумным, что список может также использоваться в этой ситуации, по крайней мере, концептуально.

Есть ли причина, почему Python использует кортеж вместо списка для этой ситуации?

Ответы на вопрос(2)

Ваш ответ на вопрос