Maison développement back-end Tutoriel Python Optimiser votre code avec l'opérateur Walrus de Python : exemples concrets et anti-modèles à éviter

Optimiser votre code avec l'opérateur Walrus de Python : exemples concrets et anti-modèles à éviter

Aug 18, 2024 am 06:01 AM

Optimizing Your Code with Python

Introduction :
L'opérateur Walrus, introduit dans Python 3.8, est un outil utile permettant aux développeurs de simplifier et d'optimiser leur code. Il permet l'affectation de variables dans des expressions, ce qui en fait une approche de programmation plus concise et efficace. Cependant, comme tout outil, il doit être utilisé avec modération et avec bon jugement. Dans ce didacticiel, nous explorerons des exemples concrets d'utilisation d'opérateurs de morses et mettrons en évidence quelques anti-schémas à éviter.

Exemples concrets d'utilisation des opérateurs de morses :
1. Simplifier les instructions conditionnelles
L'un des cas d'utilisation les plus courants de l'opérateur Walrus consiste à simplifier les instructions conditionnelles. Disons que nous avons une fonction qui renvoie la longueur d'une chaîne et que nous voulons vérifier si la longueur est supérieure à 10. En utilisant l'opérateur morse, nous pouvons attribuer la longueur variable directement dans l'instruction conditionnelle, ce qui nous permet d'économiser une ligne de code.

Exemple de déclaration conditionnelle sans opérateur morse

longueur = len(chaîne)
si longueur > 10 :
print("La chaîne comporte plus de 10 caractères.")

Exemple d'utilisation d'un opérateur morse

if (length := len(string)) > 10 :
print("La chaîne comporte plus de 10 caractères.")

2. Éviter les appels de fonction répétés
Dans certains cas, l'utilisation de l'opérateur morse peut améliorer les performances de notre code en évitant les appels de fonction répétés. Dans l'exemple suivant, nous voulons calculer la note moyenne d'un élève, mais nous devons également vérifier si l'élève a réussi le cours. Sans l'opérateur morse, nous aurions besoin d'appeler la fonction deux fois, mais avec lui, nous pouvons attribuer le résultat de la fonction à une variable et l'utiliser à la fois dans l'instruction conditionnelle et dans le calcul.

Exemple sans opérateur morse

grade1 = computing_grade(étudiant, test1)
grade2 = computing_grade(étudiant, test2)
si (grade1 + grade2) / 2 >= 70 :
print("L'étudiant a réussi le cours.")

if ((grade1 := computation_grade(student, test1)) + (grade2 := computing_grade(student, test2))) / 2 >= 70 :
print("L'étudiant a réussi le cours.")

3. Simplifier la compréhension des listes
Les compréhensions de listes sont un outil puissant pour manipuler et filtrer les données d'une liste. Cependant, les compréhensions de listes complexes peuvent devenir difficiles à lire et à maintenir. L'utilisation de l'opérateur morse peut simplifier ces compréhensions en nous permettant d'attribuer des variables dans l'expression.

Exemple de compréhension de liste sans opérateur morse

results = [compute_profit(sales, cost) pour les ventes, coût dans sales_data si calculate_profit(sales, cost) > 50]

Exemple d'utilisation d'un opérateur morse

results = [(profit := calculate_profit(sales, cost)) pour les ventes, coût dans sales_data si profit > 50]

Anti-modèles : comment ne pas utiliser l'opérateur Walrus :
1. Compréhensions de listes complexes
Bien que l'opérateur morse puisse simplifier la compréhension des listes, son utilisation excessive peut conduire à un code complexe et illisible. Dans cet anti-modèle, nous voyons une compréhension de liste avec plusieurs conditions et affectations imbriquées. Cela peut devenir difficile à lire et à maintenir, et il est préférable de diviser la logique en étapes distinctes.

Exemple de compréhension de liste désordonnée avec un opérateur morse imbriqué

sales_data = [(100, 70), (200, 150), (150, 100), (300, 200)]
results = [(sales, cost, profit, sales_ratio) pour les ventes, coût dans sales_data if (profit := calculate_profit(sales, cost)) > 50
if (sales_ratio := ventes / coût) > 1,5 si (profit_margin := (bénéfice / ventes)) > 0.2]

2. Opérateurs de morses imbriqués
L’utilisation d’opérateurs de morse imbriqués peut donner lieu à un code difficile à lire et à comprendre. Dans cet exemple, nous voyons des opérateurs imbriqués dans une seule expression, ce qui rend difficile la compréhension de la logique et du code. Il est préférable de décomposer la logique en plusieurs lignes pour une meilleure lisibilité et maintenabilité.

Exemple d'opérateurs de morses imbriqués

valeurs = [5, 15, 25, 35, 45]
seuil = 20
résultats = []
pour la valeur en valeurs :
if (above_threshold := valeur > seuil) et (incrémenté := (new_value := valeur + 10) > 30) :
results.append(new_value)
imprimer(résultats)

Fazit:
Der Walross-Operator ist ein leistungsstarkes Tool zur Vereinfachung und Optimierung von Code, sollte jedoch mit Vorsicht verwendet werden. Indem wir seine Fähigkeiten und Einschränkungen verstehen, können wir es effektiv in unserem Code nutzen und gängige Anti-Patterns vermeiden.

Die Python-Zertifizierungspraxistests von MyExamCloud sind ein nützliches Werkzeug für diejenigen, die sich auf Python-Zertifizierungen vorbereiten.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte Mar 05, 2025 am 09:58 AM

Comment utiliser Python pour trouver la distribution ZIPF d'un fichier texte

Comment télécharger des fichiers dans Python Comment télécharger des fichiers dans Python Mar 01, 2025 am 10:03 AM

Comment télécharger des fichiers dans Python

Filtrage d'image en python Filtrage d'image en python Mar 03, 2025 am 09:44 AM

Filtrage d'image en python

Comment utiliser la belle soupe pour analyser HTML? Comment utiliser la belle soupe pour analyser HTML? Mar 10, 2025 pm 06:54 PM

Comment utiliser la belle soupe pour analyser HTML?

Comment travailler avec des documents PDF à l'aide de Python Comment travailler avec des documents PDF à l'aide de Python Mar 02, 2025 am 09:54 AM

Comment travailler avec des documents PDF à l'aide de Python

Comment se cacher en utilisant Redis dans les applications Django Comment se cacher en utilisant Redis dans les applications Django Mar 02, 2025 am 10:10 AM

Comment se cacher en utilisant Redis dans les applications Django

Présentation de la boîte à outils en langage naturel (NLTK) Présentation de la boîte à outils en langage naturel (NLTK) Mar 01, 2025 am 10:05 AM

Présentation de la boîte à outils en langage naturel (NLTK)

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch? Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch? Mar 10, 2025 pm 06:52 PM

Comment effectuer l'apprentissage en profondeur avec TensorFlow ou Pytorch?

See all articles