Читать книгу Python a fondo - Óscar Ramírez Jiménez - Страница 33
1.6 PEP-20: ZEN DE PYTHON
ОглавлениеIntentando crear una guía para resolver los conflictos de cómo se debería escribir código Python, en el año 1999, Patrick Phalen pidió a Tim Peters y a Guido van Rossum en la lista general de Python (python-list@python.org) que hicieran una lista de unas 20 reglas que todo pythonista debería seguir para discernir la forma en la que habría que proceder ante un conflicto a la hora de escribir código pythónico.
El pythonista que tomó la iniciativa y propuso las primeras 19 fue Tim Peters. Dejó espacio para que Van Rossum añadiese una más y completase hasta 20 las reglas, pero hasta la fecha esto no ha ocurrido (ni se espera que ocurra).
La PEP que recoge esta lista de reglas fue bautizada como PEP-20 y es accesible tanto por el método habitual (en la página web oficial, https://www.python.org/dev/peps/pep-0020/) como haciendo uso del huevo de pascua incluido en todas las versiones de Python, simplemente ejecutando el siguiente comando en la consola interactiva:
En castellano sería algo como:
• Bonito es mejor que feo.
• Explícito es mejor que implícito.
• Simple es mejor que complejo.
• Complejo es mejor que complicado.
• Plano es mejor que anidado.
• Esparcido es mejor que denso.
• La legibilidad cuenta.
• Los casos especiales no son lo suficientemente especiales como para romper reglas.
• Pero la practicidad vence a la pureza.
• Los errores nunca deberían pasar silenciosamente.
• A no ser que haya un silencio explícito.
• En caso de ambigüedad, evita la tentación de adivinar.
• Debe haber una —y preferiblemente solo una— forma obvia de hacerlo.
• Aunque esa forma no parezca obvia desde el primer momento a no ser que seas holandés [hace referencia a que Guido es holandés].
• Ahora es mejor que nunca.
• Pero, muchas veces, nunca es mejor que ahora mismo.
• Si la implementación es complicada de explicar, es una mala idea.
• Si la implementación es fácil de explicar, es una buena idea.
• Los espacios de nombres son una buena idea –, ¡Hagamos más de esos!
Utilizando este Zen de Python, cualquier pythonista debería poder elegir la opción que se considera más "pythónica" para resolver cualquier conflicto al desarrollar una aplicación en este lenguaje.