¿Qué se entiende por "usar el principio EAFP" en Python? ¿Podría darnos algún ejemplo?¿Cuál es el principio de EAFP en Python?
Respuesta
Desde el glossary:
más fácil pedir perdón que permiso. Este estilo de codificación de Python común asume la existencia de claves o atributos válidos y atrapa excepciones si la suposición es falsa. Este estilo limpio y rápido se caracteriza por la presencia de muchas declaraciones
try
yexcept
. La técnica contrasta con la LBYL style común a muchos otros lenguajes como C
Un ejemplo podría ser un intento 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 llave dentro del diccionario dos veces, y también podría considerarse un poco menos legible.
corto con buenos ejemplos. –
Una mejora sería que otra ventaja es evitar las condiciones de carrera ... por ejemplo, simplemente intente abrir un archivo y, si lo obtiene, lo tiene. En lugar de ver * si puede obtenerlo *, entonces intente obtenerlo luego y descubra que en la minúscula cantidad de tiempo entre el cheque y el intento de acceso, puede obtenerlo más. –
Python también proporciona una forma de evitar ambos, si el controlador solo está asignando un valor predeterminado a 'x' cuando la clave no existe:' x = mydict.get ('key') 'devolverá' None 'if' 'key'' no está en 'my_dict'; también podría hacer '.get ('clave',
- 1. Excepciones de Python: EAFP y ¿Qué es realmente excepcional?
- 2. LBYL vs EAFP en Java?
- 3. ¿Cuál es el significado de '_' en python?
- 4. ¿cuál es el principio del patrón de diseño en el desarrollo de Android?
- 5. ¿Cuál es el __hash__ predeterminado en python?
- 6. ¿Cuál es el equivalente Python de Tomcat?
- 7. ¿Cuál es el mejor editor de python?
- 8. ¿Cuál es el razonamiento detrás del principio de segregación de interfaz?
- 9. ¿Cuál es el valor de retorno de Socket.accept() en Python
- 10. ¿Cuál es el equivalente de issubclass de instancia en python?
- 11. ¿Cuál es el equivalente en Python de FindBin de Perl?
- 12. Módulos Python PostgreSQL. ¿Cuál es el mejor?
- 13. ¿Cuál es el propósito en itertools.repeat de Python?
- 14. ¿Cuál es el prefijo u en una cadena de Python?
- 15. ¿Cuál es el equivalente de php's print_r() en python?
- 16. ¿Cuál es el valor lógico de "cadena" en Python?
- 17. ¿Cuál es el significado de% r en python
- 18. ¿Cuál es el equivalente en rubí del getattr de python?
- 19. ¿El manejo de excepciones de python es más eficiente que PHP u otros lenguajes?
- 20. ¿Cuál es el equivalente de la cadena de ruby inspeccionar() en python
- 21. ¿Cuál es el motivo para tener '//' en Python?
- 22. Cálculo si la fecha es en principio, futuro o presente en Python
- 23. Principio de Java EE
- 24. ¿Cuál es el análogo para .Net InvalidOperationException en Python?
- 25. ¿Cuál es el equivalente de Python al "inspeccionar" de Ruby?
- 26. ¿Cuál es el equivalente de Groovy al dir de Python()?
- 27. ¿Cuál es el equivalente Ruby de os.walk de Python?
- 28. ¿Cuál es el equivalente de Python de "perl -V"
- 29. ¿Cuál es el equivalente Python de DBI de Perl?
- 30. Go - ¿Cuál es el equivalente del "pase" de Python?
No según Guido: https://mail.python.org/pipermail/python-dev/2014-March/133118.html –