¿Cuál es el principio de EAFP en Python?

¿Qué se entiende por “usar el principio de EAFP” en Python? ¿Podría dar algún ejemplo?

Related of "¿Cuál es el principio de EAFP en Python?"

Desde el glosario :

Más fácil pedir perdón que permiso. Este estilo de encoding de Python común asume la existencia de claves o atributos válidos y detecta excepciones si la suposición es falsa. Este estilo limpio y rápido se caracteriza por la presencia de muchas declaraciones try y except . La técnica contrasta con el estilo LBYL común a muchos otros idiomas, como C.

Un ejemplo sería un bash de acceder a una clave de diccionario.

EAFP:

 try: x = my_dict["key"] except KeyError: # handle missing key 

LBYL:

 if "key" in my_dict: x = my_dict["key"] else: # handle missing key 

La versión LBYL tiene que buscar la clave dentro del diccionario dos veces, y también podría considerarse un poco menos legible.

Yo lo llamo “progtwigción optimista”. La idea es que la mayoría de las veces las personas harán lo correcto y los errores deberían ser pocos. Entonces codifique primero para que suceda lo “correcto”, y luego detecte los errores si no lo hacen.

Mi sensación es que si un usuario va a cometer errores, debe ser quien sufra las consecuencias del tiempo. Las personas que usan la herramienta de la manera correcta son aceleradas.