Iniciar Sesión | Regístrate

En verdad es más fácil pedir perdón que permiso

Abstracto

Python usa excepciones más que otros lenguajes porque "es más fácil pedir perdón que permiso". Veremos cómo y por qué la manera Pythonico de funcionar no es rara, imprudente o ineficiente, sino una parte integral de Python, que hace código más expresivo, más flexible y sí más Pythonico y eficiente.

Descripción

Es una máxima pythonica que "es más fácil pedir perdón que permiso" y escribimos código pythonico con una preferencia para intentar hacer una operación y después lanzar una excepción si ocurre un error. Esto contrasta con muchos otros lenguajes que tienden a pensar antes de actuar ("look before you leap") y comprueban condiciones, tipos, y valores antes de intentar una operación.

Esta tendencia a usar excepciones parece a programadores de otros lenguajes (y varios Pythonistas también) rara, imprudente e ineficiente. ¿Seguramente sería mejor comprobar un poco las cosas y evitar errores? ¿Deben usarse las excepciones con tan frecuencia? El uso del tantas excepciones hace que el código sea lento e ineficiente?

Esta charla atenderá a estas preocupaciones. Mostraremos cómo y por qué el funcionamiento de Python es una fortaleza, y no una debilidad, que hace Python más expresivo y flexible. Veremos también cómo lanzar excepciones (incluso las que no parecen excepciones) es una parte integral de Python y subyace a muchas características del lenguaje. Finalmente, veremos algunas pruebas simples que muestran que el uso pythonico de excepciones es una parte importante del código pythonico eficiente.

Tabla de contenido

  1. Introdución : 2 minutos
  2. Cómo se manejan errores en otros lenguajes : 3 minutos
  3. Excepciones normales en Python : 8 minutos
    • Estructura tipica
    • Herencia
    • Mejores prácticas
    • Excepciones sorprendentes (o "excepcionales") - ejemplos y explicaciones de excepciones que no se conocen como excepciones : 10 minutos
    • Iteración
    • Lectura de archivos
    • En generadores
    • __getattribute__ y __getattr__
  4. Rendimiento de excepciones : 5 minutos
  5. Conclusión : 2 minutos
  6. Preguntas : si el tiempo lo permite