Articulo de referencia

El zen de Python

El Zen de la salida de Python en una terminal El Zen de Python es una colección de 19 "principios rectores" para escribir programas informáticos que influyen en el diseño del le...

El Zen de la salida de Python en una terminal

El Zen de Python es una colección de 19 "principios rectores" para escribir programas informáticos que influyen en el diseño del lenguaje de programación Python . [ 1 ] El código Python que se ajusta a estos principios se suele denominar "pythónico". [ 2 ]

El ingeniero de software Tim Peters escribió este conjunto de principios y lo publicó en la lista de correo de Python en 1999. [ 3 ] La lista de Peters dejó un vigésimo principio vacante "para que Guido lo completara", en referencia a Guido van Rossum , el autor original del lenguaje Python. El puesto vacante para el vigésimo principio aún no se ha cubierto.

El Zen de Python de Peters se incluyó como entrada número 20 en las Propuestas de Mejora de Python oficiales del lenguaje y se publicó en el dominio público . [ 4 ] También se incluye como un huevo de Pascua en el intérprete de Python , donde se puede mostrar ingresando . [ 1 ] [ 4 ] [ a ]importthis

En mayo de 2020, Barry Warsaw (desarrollador de GNU Mailman ) lo usó como letra de una canción. [ 5 ] [ 6 ]

Principios

Los principios se enumeran a continuación: [ b ]

Ser pitonico

Uno de los principios, "Debe haber una —y preferiblemente solo una— manera obvia de hacerlo", puede denominarse la manera "Pythonic". [ 8 ] La definición oficial de "Pythonic" es: [ 2 ] [ e ]

Una idea o fragmento de código que sigue fielmente las convenciones más comunes del lenguaje Python, en lugar de implementar código utilizando conceptos propios de otros lenguajes. Por ejemplo, una convención común en Python es iterar sobre todos los elementos de un iterable mediante una forinstrucción `return`. Muchos otros lenguajes no cuentan con este tipo de estructura, por lo que quienes no están familiarizados con Python a veces utilizan un contador numérico en su lugar.

para i en rango ( longitud ( comida )): imprimir ( comida [ i ])

A diferencia del método más limpio y propio de Python:

para cada pieza en comida : imprimir ( pieza )

El código que es difícil de entender o que parece una transcripción aproximada de otro lenguaje de programación se denomina no-pythónico . [ 9 ]

En la práctica

Desde el lanzamiento de Zen of Python, se ha investigado su efectividad y uso real entre los desarrolladores. A pesar de la diferencia de interpretación entre principiantes y programadores de Python experimentados, las entrevistas a 13 programadores de Python de diferentes niveles de habilidad muestran que Zen of Python "influye positivamente en la forma en que los desarrolladores escriben y hablan sobre el código". [ 8 ] Los investigadores extendieron este estudio de caso para explorar el uso de modismos de Python en repositorios de GitHub y encontraron que el uso de "modismos Pythonicos" [ f ] aumentó con el tiempo. [ 10 ] Escribir código Python que se alinee con Zen of Python puede ahorrar memoria y tiempo de ejecución de los programas Python. [ 11 ] El deseo de escribir en código Pythonico ha llevado a herramientas de refactorización para ayudar a los programadores a lograr este objetivo. [ 12 ] [ 13 ]

Véase también

Notas

  1. El código fuente de Zen of Python se puede encontrar en Github .
  2. Los enlaces de Wikipedia que aparecen a continuación se han añadido para mayor referencia y comprensión, y no estaban explícitamente enlazados en el Zen de Python.
  3. El formato de los guiones en esta línea y en la última es deliberadamente inconsistente, en referencia a las diferentes convenciones de formato. [ 7 ]
  4. En el huevo de Pascua del intérprete, esto se escribe como "Aunque nunca suele ser mejor que *ahora*". Esto sigue una convención de larga data en la comunicación de texto plano , en la que las funciones de formato comunes suelen ser imposibles, donde el énfasis se representa con asteriscos.
  5. La siguiente definición se cita directamente para preservar su significado. Por lo tanto, tal como está, no constituye un código Python válido y autocontenido que se pueda ejecutar sin errores.
  6. Aquí puedes encontrar una lista de sus modismos de Python : https://slimshadyiam.github.io/ZenYourPython/

Referencias

  1. 1 2 Reitz, Kenneth (2011–2019). "Estilo de código" . La guía del autoestopista para Python . § Zen de Python . Recuperado el 26 de marzo de 2019 .
  2. 1 2 "Glosario" . Documentación de Python . Consultado el 7 de febrero de 2024 .
  3. Peters, Tim (4 de junio de 1999). "The Python Way" . Python Software Foundation . Consultado el 26 de marzo de 2019 .
  4. 1 2 Peters, Tim (19 de agosto de 2004). "PEP 20: El Zen de Python" . Python Software Foundation . Recuperado el 26 de marzo de 2019 .
  5. Varsovia, Barry (10 de mayo de 2020). "El zen de Python" . We Fear Change . Archivado del original el 3 de junio de 2020.
  6. Varsovia, Barry (23 de mayo de 2020). El Zen de Python . YouTube . The Zbwedicon. Archivado del original el 11 de diciembre de 2021.Archivado el 3 de junio de 2020 en Wayback Machine.
  7. "Problema 3364: Un error ortográfico en el texto de Zen of Python - Rastreador de Python" . bugs.python.org .
  8. 1 2 Alexandru, Carol V.; Merchante, José J.; Panichella, Sebastiano; Proksch, Sebastian; Gall, Harald C.; Robles, Gregorio (24 de octubre de 2018). "Sobre el uso de modismos pythónicos" (PDF) . Actas del Simposio Internacional ACM SIGPLAN 2018 sobre Nuevas Ideas, Nuevos Paradigmas y Reflexiones sobre Programación y Software (PDF) . ¡Adelante! 2018. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 1–11 . doi : 10.1145/3276954.3276960 . ISBN  978-1-4503-6031-9. OCLC 1362712424 . S2CID 53057358 . Archivado del original el 24-03-2024 . Recuperado el 19-02-2024 .  {{cite book}}: CS1 maint: bot: estado de la URL original desconocido ( enlace )
  9. "Estilo de código: la guía del autoestopista para Python" . docs.python-guide.org . Archivado del original el 27 de enero de 2021. Consultado el 20 de enero de 2021 .
  10. Farooq, Aamir; Zaytsev, Vadim (22 de noviembre de 2021). "Hay más de una forma de aplicar la filosofía zen a Python" . Actas de la 14.ª Conferencia Internacional ACM SIGPLAN sobre Ingeniería de Lenguajes de Software . SLE 2021. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 68–82 . doi : 10.1145/3486608.3486909 . ISBN  978-1-4503-9111-5.
  11. Leelaprute, Pattara; Chinthanet, Bodin; Wattanakriengkrai, Supatsara; Kula, Raula Gaikovina; Jaisri, Pongchai; Ishio, Takashi (2022-10-20). "¿Alcanza el máximo rendimiento la programación en Python zen?: Experimentos preliminares de nueve modismos de Python a gran escala" . Actas de la 30.ª Conferencia Internacional IEEE/ACM sobre Comprensión de Programas . ICPC '22. Nueva York, NY, EE. UU.: Association for Computing Machinery. págs. 575–579 . doi : 10.1145/3524610.3527879 . ISBN  978-1-4503-9298-3.
  12. ^ Zhang, Zejun; Xing, Zhenchang; Xia, Xin; Xu, Xiwei; Zhu, Liming (12 de julio de 2022), Hacer que el código Python sea idiomático mediante la refactorización automática de código Python no idiomático con modismos pitónicos , arXiv : 2207.05613
  13. ^ Phan-udom, Purit; Wattanakul, Naruedon; Sakulniwat, Tattiya; Ragkhitwetsagul, Chaiyong; Sunetnanta, Thanwadee; Choetkiertikul, Morakot; Kula, Raula Gaikovina (5 de septiembre de 2020), Teddy: Recomendación automática del uso de lenguaje pitónico para proyectos de software basados ​​en extracción , arXiv : 2009.03302
  • PEP20 en el sitio web de Python
  • PEP 20 ~ El zen de Python por Tim Peters