Aunque Python cumplió 30 años en 2021, la explosión de adopción, crecimiento y desarrollo con visión de futuro asociada con el lenguaje es todavía relativamente nueva. Muchas características de Python no han cambiado desde sus inicios, pero cada año que pasa y cada nueva edición de Python, hay nuevas formas de hacer las cosas y nuevas bibliotecas que aprovechan esos avances. Entonces, Python tiene sus viejas costumbres y sus nuevas formas. Naturalmente, tiene sentido aprender a trabajar con Python utilizando sus funciones más modernas y convenientes. Aquí, analizaremos los conceptos clave que necesita comprender para escribir Python moderno en 2024: software que utiliza los mejores y más recientes modismos, conceptos y capacidades de Python. Sugerencias de tipos en PythonLa sintaxis de sugerencias de tipos introducida recientemente por Python permite a linters y a terceros. herramientas de calidad de código para analizar su código antes del tiempo de ejecución y detectar posibles errores antes de que surjan. Cuanto más código Python cree para compartir con otros, más probabilidades tendrá usted (¡y todos los demás!) de beneficiarse del uso de sugerencias de tipo. Cada revisión sucesiva de Python incluye anotaciones de tipo más sofisticadas y potentes. Si adquiere el hábito de aprender a utilizar anotaciones tipográficas a corto plazo, estará mejor equipado para hacer uso de cada nueva innovación de sugerencias tipográficas a medida que se introduzca. Es importante recordar que las sugerencias tipográficas son opcionales, no obligatorias. No todos los proyectos los necesitan. Utilice sugerencias tipográficas para que sus proyectos más importantes sean comprensibles, pero siéntase libre de omitirlas en un guión desechable de 50 líneas. Y, si bien las sugerencias de tipo no se aplican en tiempo de ejecución, puede usar Pydantic para hacerlo posible. Muchos proyectos de Python ampliamente utilizados utilizan Pydantic ampliamente; FastAPI es un ejemplo. Entornos virtuales de Python y administración de paquetes Para proyectos simples y trabajos de desarrollo poco exigentes, a menudo puede usar la herramienta venv incorporada de Python para mantener separados los proyectos y sus requisitos. Pero los avances recientes en las herramientas de Python le brindan más opciones: Pyenv: si necesita mantener instaladas varias versiones de Python para satisfacer diferentes requisitos del proyecto, Pyenv le permite cambiar entre ellas globalmente o por proyecto. Es útil si trabaja mucho con diferentes ediciones de Python directamente en la línea de comandos, fuera del contexto de un entorno virtual por proyecto. Tenga en cuenta que no existe soporte oficial para Windows, pero sí existe un puerto no oficial para Windows. Pipenv: Considerado como “flujo de trabajo de desarrollo de Python para humanos”, Pipenv está destinado a administrar un entorno virtual más todas las dependencias de su proyecto. También garantiza que las dependencias sean deterministas, lo que significa que usted obtiene las versiones específicas que desea y que funcionan en la combinación que solicita. Pipenv, sin embargo, no habla de empaquetado de ninguna forma, por lo que no es ideal para proyectos que eventualmente quieras cargar en PyPI o compartir con otros. Poetry: ampliando el conjunto de herramientas de Pipenv, Poetry no solo gestiona proyectos y requisitos, sino que también facilita la implementación del proyecto en PyPI. También gestiona entornos virtuales separados de los directorios de su proyecto. PDM: PDM (abreviatura de Python Development Master) es un proyecto reciente de vanguardia en este sentido. Al igual que Poetry y Pipenv, PDM le proporciona una interfaz única para configurar un proyecto, gestionar sus dependencias y crear artefactos de distribución a partir de él. PDM también utiliza el estándar PEP 582 para almacenar paquetes localmente en un proyecto, por lo que no es necesario crear entornos virtuales por proyecto. Pero esta herramienta es relativamente nueva, así que asegúrese de que funcione provisionalmente antes de adoptarla en producción. Hatch: El proyecto Hatch no solo maneja la configuración y administración del proyecto, sino que también proporciona un sistema de compilación, herramientas para empaquetar proyectos para su redistribución en PyPI, manejo de pruebas y muchas otras funciones útiles. uv: El proyecto experimental uv está escrito por las mismas personas que crean la herramienta linting ruff Python. Su objetivo es reemplazar pip, venv y varias otras herramientas Python de línea de comandos a la vez. Está escrito en Rust para velocidad (como ruff), y muchos de sus comandos se parecen a los de pip y otras herramientas que reemplaza, lo que lo hace relativamente fácil de aprender. Al crear nuevos proyectos destinados a trabajar en un entorno de equipo o distribuirse a otros (por ejemplo, a través de PyPI), asegúrese de utilizar el formato moderno pyproject.toml para sus requisitos y configuración del proyecto, junto con el diseño del proyecto utilizado con él. Aún puede usar el archivo require.txt anterior junto con pyproject.toml, pero este último cubre una gama más amplia de casos de uso y hace que sus proyectos sean compatibles con versiones posteriores. Nueva sintaxis de Python La evolución de Python ha significado muchas adiciones nuevas al lenguaje. sí mismo. Las últimas versiones de Python han agregado construcciones sintácticas útiles que permiten una programación más potente y concisa. Si bien no son obligatorios, los módulos de terceros más nuevos pueden usarlos, por lo que vale la pena conocerlos al menos de manera informal. Tres adiciones de sintaxis recientes son especialmente notables. Coincidencia de patrones La mayor incorporación reciente, la coincidencia de patrones estructurales, que llegó a Python 3.10, es más que simplemente «cambiar/case para Python», como a veces se ha descrito. La coincidencia de patrones estructurales le permite tomar decisiones de flujo de control basadas en el contenido o la estructura de los objetos. En resumen, es una forma de hacer coincidencias basándose en tipos o formas de tipos (una lista con un int y una cadena, por ejemplo) en lugar de valores. El ‘operador morsa’ Llamado así por su apariencia (:=), la morsa El operador, agregado en Python 3.8, introduce expresiones de asignación, una forma de asignar un valor a una variable y luego aplicar una prueba a la variable en un solo paso. Esto genera un código menos detallado en muchas situaciones comunes, como verificar el valor de retorno de una función y al mismo tiempo preservar los resultados. Parámetros solo posicionales Una adición reciente menor pero útil a la sintaxis de Python, los parámetros solo posicionales, le permite indicar qué parámetros de función deben ser especificados como posicionales, nunca como argumentos de palabras clave. Esta característica generalmente tiene como objetivo mejorar la claridad y facilitar el desarrollo futuro de una base de código, objetivos en los que también se centran muchas de las otras características nuevas de Python. Pruebas de PythonEscribir pruebas para un código base es como usar hilo dental a diario: todos están de acuerdo en que es algo bueno, pocos de nosotros realmente lo hacemos y aún menos lo hacemos correctamente. Las bases de código modernas de Python merecen tener conjuntos de pruebas, y las herramientas actuales para las pruebas hacen que la creación de conjuntos de pruebas sea más fácil que nunca. Python tiene su propio marco de pruebas integrado, unittest. No es malo por defecto, pero su diseño y comportamiento están anticuados. El marco Pytest ha adquirido importancia como sustituto común. Es más flexible (puede declarar pruebas en cualquier parte de su código, no solo en un subconjunto) y requiere escribir mucho menos texto repetitivo. Además, Pytest tiene muchos complementos para ampliar su funcionalidad (por ejemplo, para probar código asincrónico). Otro complemento importante de las pruebas es la cobertura del código, que determina qué parte del código base cubren realmente las pruebas. El módulo Cobertura lo cubre para esto (como su nombre indica) y Pytest incluso viene con un complemento para trabajar con él. Copyright © 2024 IDG Communications, Inc.