4 clés pour écrire du Python moderne en 2022

Bien que Python ait eu 30 ans l’année dernière (2021), ce n’est que ces dernières années qu’il a connu la grande explosion de l’adoption, de la croissance et du développement avant-gardiste que nous en sommes venus à associer au langage. De nombreuses fonctionnalités de Python sont restées inchangées depuis sa création, mais chaque année qui passe et chaque nouvelle édition de Python s’accompagnent de nouvelles façons de faire et de nouvelles bibliothèques qui tirent parti de ces avancées.

Python a donc ses anciennes et ses nouvelles méthodes. Naturellement, il est logique d’apprendre à travailler avec Python en utilisant ses fonctionnalités les plus modernes et les plus pratiques. Ici, nous allons passer en revue les concepts clés que vous devez comprendre pour écrire moderne Python en 2022 — logiciel qui utilise les idiomes, concepts et capacités les plus récents et les plus performants de Python.

Indication de type en Python

La syntaxe d’indication de type récemment introduite par Python permet aux linters et aux outils de qualité de code tiers d’analyser votre code avant l’exécution et de détecter d’éventuelles erreurs avant qu’elles ne bourdonnent. Plus vous créez de code Python à partager avec d’autres, plus vous (et tous les autres !) avez de chances de bénéficier de l’utilisation des indications de type.

Chaque révision successive de Python déploie des annotations de type plus sophistiquées et plus puissantes. Si vous prenez l’habitude d’apprendre à utiliser les annotations de type à court terme, vous serez mieux équipé pour utiliser chaque nouvelle innovation d’indication de type au fur et à mesure de leur introduction.

Il est important de se rappeler que les indications de type sont optionnelne pas obligatoire. Tous les projets n’en ont pas besoin. Utilisez des indications de type pour rendre vos projets plus importants compréhensibles, mais n’hésitez pas à les omettre d’un script jetable de 50 lignes. Et notez que, bien que les indications de type ne soient pas appliquées lors de l’exécution, vous pouvez utiliser Pydantic pour rendre cela possible. De nombreux projets Python largement utilisés, comme FastAPI, utilisent largement Pydantic.

Environnements virtuels Python et gestion des packages

Pour les projets simples et les tâches de développement peu exigeantes, vous pouvez souvent simplement utiliser les fonctionnalités intégrées de Python. venv outil pour séparer les projets et leurs exigences. Mais les avancées récentes dans l’outillage de Python vous offrent plus d’options :

  • Pyenv: Si vous devez conserver plusieurs versions de Python installées (3.8, 3.9, 3.10) pour répondre aux différentes exigences du projet, Pyenv vous permet de basculer entre elles soit globalement sur une base par projet. C’est utile si vous travaillez beaucoup avec différentes éditions Python directement sur la ligne de commande, en dehors du contexte d’un environnement virtuel par projet. Notez qu’il n’y a pas de support Windows officiel, mais un port Windows non officiel existe.
  • Pipenv: Présenté comme “flux de travail de développement Python pour les humains”, Pipenv est destiné à gérer un environnement virtuel ainsi que toutes les dépendances de votre projet. Il garantit également que les dépendances sont déterministe – que vous obtenez les versions spécifiques que vous souhaitez et qu’elles fonctionnent dans la combinaison que vous demandez. Cependant, Pipenv ne parle pas d’emballage sous quelque forme que ce soit, il n’est donc pas idéal pour les projets que vous souhaitez éventuellement télécharger sur PyPI ou partager avec d’autres.
  • Poésie: En développant l’ensemble d’outils de Pipenv, Poetry gère non seulement les projets et les exigences, mais facilite également le déploiement du projet sur PyPI. Il gère également pour vous des environnements virtuels distincts de vos répertoires de projet.
  • PDM: PDM (abréviation de « Python Development Master ») est le projet le plus récent et le plus avant-gardiste dans cette veine. Comme Poetry et Pipenv, PDM vous fournit une interface unique pour configurer un projet, gérer ses dépendances et créer des artefacts de distribution à partir de celui-ci. PDM utilise également la norme PEP 582 pour stocker les packages localement dans un projet, il n’est donc pas nécessaire de créer des environnements virtuels par projet. Mais cet outil est relativement nouveau, assurez-vous donc qu’il fonctionne provisoirement avant de l’adopter en production.

Nouvelle syntaxe Python

L’évolution de Python a signifié de nombreux nouveaux ajouts au langage lui-même. Les dernières versions de Python ont ajouté des constructions syntaxiques utiles qui permettent une programmation plus puissante et succincte. Certains ajouts récents incluent:

Correspondance de modèle

Le plus grand ajout récent, la correspondance de modèles structurels, qui est arrivé dans Python 3.10, est plus que juste “switch/case pour Python » comme cela a parfois été décrit. Il vous permet de prendre des décisions de flux de contrôle en fonction du contenu ou structure d’objets.

Le « morse opérateur »

Ainsi nommé pour son apparence (:=), l’« opérateur morse », ajouté dans Python 3.8, introduit des expressions d’affectation, un moyen d’attribuer une valeur à une variable, puis d’appliquer un test à la variable en une seule étape. Cela rend le code moins verbeux dans de nombreuses situations courantes, telles que la vérification de la valeur de retour d’une fonction tout en préservant les résultats.

Paramètres de position uniquement

Un ajout récent mineur mais utile à la syntaxe de Python, les paramètres positionnels uniquement, vous permet d’indiquer quels paramètres de fonction doivent être spécifiés en tant que paramètres positionnels, et non en tant qu’arguments de mots clés. Les raisons pour cela impliquent généralement d’améliorer la clarté et de faciliter le développement futur d’une base de code, des objectifs sur lesquels de nombreuses autres nouvelles fonctionnalités de Python se concentrent également.

Test Python

Écrire des tests pour une base de code, c’est comme passer du fil dentaire quotidiennement : tout le monde s’accorde à dire que c’est une bonne chose, peu d’entre nous le font réellement, et encore moins le font correctement. Les bases de code Python modernes méritent d’avoir des suites de tests, et les outils actuels de test rendent la création de suites de tests plus facile que jamais.

Python a son propre cadre de test intégré, Unittest, et bien que Unittest ne soit pas mauvais par défaut, sa conception et ses comportements sont datés. Le cadre Pytest est devenu une protection en tant que substitut commun. C’est plus flexible (vous pouvez déclarer des tests dans n’importe quelle partie de votre code, pas seulement un sous-ensemble) et nécessite d’écrire beaucoup moins de passe-partout. De plus, Pytest dispose de nombreux modules complémentaires pour étendre ses fonctionnalités (par exemple, pour tester le code asynchrone).

Un autre complément important aux tests est la couverture du code, qui détermine la partie de la base de code que les tests couvrent réellement. Le module Coverage vous couvre, euh, et Pytest est même livré avec un plug-in pour fonctionner avec.

Copyright © 2022 IDG Communications, Inc.

Leave a Comment