que tienen dificultades para averiguar éste hacia fuera, se trata de errores que se pueden hacer al levantar una excepción en Python 2.7:¿Por qué levantar una tupla funciona si el primer elemento es una excepción?
try:
raise [1, 2, 3, 4]
except Exception as ex:
print ex
el mensaje aquí es "excepciones deben ser clases de estilo antiguo o derivados de BaseException , no lista" - Esta parte está bien, pero cuando lo cambio a tupla, me estoy confundido:
try:
raise (1, 2, 3, 4)
except Exception as ex:
print ex
el mensaje aquí es 'excepciones deben ser clases de estilo antiguo o derivado de BaseException, no int' - ¿Por qué se interpreta como elevar una int, no una tupla?
Futhermore:
try:
raise (Exception, 'a message')
except Exception as ex:
print ex
Aquí estamos en realidad el aumento de una excepción (un comportamiento coherente en comparación con el ejemplo anterior, donde nos planteamos un int) - pensé brevemente que esto es sólo una forma alternativa para esto:
try:
raise Exception, 'a message'
except Exception as ex:
print ex
Pero en este caso, 'un mensaje' se está pasando a Héctor excepciones (como se documenta en docs.python.org)
Puede alguien se expl en los casos segundo y tercero, y es posible que me indiquen un código en el intérprete que es responsable de esto?
yo no era consciente de la tupla desenvolver recursiva, así que no podía ver por qué los otros elementos son ignorados - el PEP era el eslabón perdido que estaba buscando. – dahpgjgamgan