


Quelle est la différence entre le rendement et le retour en Python ?
En Python, la définition de generator se fait à l'aide de l'instruction yield. Donc, avant d'entrer dans les détails de l'utilisation réelle du yield, il est important de comprendre un aperçu des générateurs. Si vous êtes nouveau sur Python, il y a de fortes chances que vous ayez déjà utilisé un générateur Python. Les générateurs jouent un rôle important en Python. En Python, les itérateurs peuvent être générés à l'aide de générateurs, mais le processus prend une forme légèrement différente.
Les générateurs Python sont des fonctions qui peuvent mettre en pause, reprendre et créer dynamiquement une séquence de résultats. Ils peuvent également être utilisés pour générer des nombres aléatoires. Dans Python 2.2, les générateurs ont été introduits pour la première fois en tant que fonctionnalité facultative. Dans Python 2.3, ils sont appliqués. La fonctionnalité du générateur a été grandement améliorée dans Python 2.5, bien qu'ils disposent déjà de fonctionnalités suffisantes.
Pour maintenir la compatibilité ascendante, l'ajout de générateurs dans Python 2.2 a entraîné l'introduction d'un nouveau mot-clé appelé « rendement ». Pour utiliser les générateurs, nous devons les importer depuis le module _future_. Lorsque les générateurs sont devenus la valeur par défaut dans la version Python 2.3, cela a été modifié pour refléter le fait que cette modification n'était plus nécessaire.
Utilisez l'instruction yield pour arrêter temporairement l'exécution d'une fonction, qui renvoie ensuite une valeur à l'appelant tout en enregistrant l'état de la fonction pour une restauration ultérieure. Cela signifie que l'ensemble du générateur peut toujours être redémarré après avoir obtenu la valeur de retour. L'exécution d'une fonction se termine par une instruction return, qui renvoie également une valeur à la personne qui a appelé la fonction. En cas d'absence, votre fonction ne retournera rien.
Qu'est-ce que le rendement Python ?
Dans les générateurs Python, l'instruction yield remplace le return de la fonction pour renvoyer une valeur à la personne qui a appelé le générateur sans supprimer aucune variable locale. Afin de mieux comprendre la fonction d'exécution de l'instruction yield dans la programmation Python, vous devez d'abord vous familiariser avec les générateurs.
La différence entre une fonction génératrice et une fonction normale est qu'il y a une instruction « rendement » dans la définition de la fonction génératrice. Cela commence par le mot-clé "yield", qui identifie l'objet générateur à renvoyer à celui qui appelle cette fonction.
En Python, un type spécifique de fonction appelé « générateur » ne renvoie pas de valeur de données à la personne qui a appelé la fonction, mais renvoie à la place un autre objet générateur. À l'aide du mot-clé yield, vous pouvez arrêter temporairement l'exécution d'une fonction, enregistrer l'état et reprendre la fonction plus tard.
Exemple
Regardez l'exemple ci-dessous -
# Use of yield def printresult(String): for i in String: if i == "p": yield i # Initializing string String = "Happy Birthday" ans = 0 print ("The number of 'p' in word is: ", end = "" ) String = String.strip() for j in printresult(String): ans = ans + 1 print (ans)
Sortie
The number of 'p' in word is: 2
Qu'est-ce que Python Return ?
Contrairement à l'instruction yield, l'instruction return provoque la fin de la fonction tout en renvoyant la valeur à la fonction qui l'a appelée. Les fonctions de nature plus procédurale ne renvoient rien explicitement à l'appelant, mais renvoient plutôt une valeur qui est renvoyée à la fonction appelante. Bien qu'une fonction puisse avoir plusieurs instructions return, une seule d'entre elles peut être appelée pour chaque appel à chacune de ces instructions.
L'instruction return est presque toujours placée à la toute fin d'un bloc fonction, son but est de renvoyer le résultat final de l'exécution de toutes les instructions contenues dans la fonction. Cependant, une instruction return peut également apparaître avant un bloc fonctionnel pour arrêter l'exécution de toutes les instructions suivantes dans le bloc. Cela peut se produire s'il est utilisé pour empêcher l'exécution d'une fonction. Cela amène l'appelant à redémarrer immédiatement l'exécution du programme. Lorsqu'aucune valeur n'est fournie pour l'objet return, le type d'objet de retour "Aucun" est équivalent à celui de Python.
Exemple
L'exemple suivant montre l'utilisation de return en Python -
# Show return statement class Test: def __init__(self): self.str = "Happy Birthday" self.x = "Pradeep" # This function returns an object of Test def fun(): return Test() # Driver code to test above method t = fun() print(t.str) print(t.x)
Sortie
Happy Birthday Pradeep
Différence entre le rendement et le retour en Python
Le tableau suivant met en évidence les principales différences entre le rendement et le rendement en Python -
Basique | Sortie | Retour |
---|---|---|
Bases | Dans la plupart des cas, vous devrez utiliser la fonction rendement pour convertir une fonction Python typique en générateur. | Dans la plupart des cas, la fin de l'exécution est signalée à l'aide du mot-clé return, qui "renvoie" le résultat à l'instruction qui l'a appelé. |
Caractéristiques | Il remplace le retour d'une fonction afin de mettre en pause l'exécution de la fonction sans perdre aucune variable locale. | Il quitte la fonction et renvoie une valeur à son appelant. |
Utilisation | L'appelant utilisera cette fonction lorsque le générateur fournira des résultats intermédiaires à l'appelant. | Quand une fonction va transmettre une valeur, il est nécessaire de l'utiliser. |
Exécuter | Le code écrit après l'instruction rendement sera exécuté dans l'appel de fonction suivant. | Bien que le code écrit après l'instruction return ne soit pas exécuté. |
Compiler | Il a la capacité de s’exécuter plusieurs fois. | Il ne fonctionne qu'une fois à la fois. |
Conclusion
L'instructionyield génère un objet générateur et peut renvoyer plusieurs valeurs à l'appelant sans terminer le programme, tandis que l'instruction return est utilisée pour renvoyer une valeur à l'appelant depuis l'intérieur de la fonction, ce qui termine le programme. L'instruction return est utilisée pour renvoyer une valeur depuis une fonction à l'appelant.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Solution aux problèmes d'autorisation Lors de la visualisation de la version Python dans Linux Terminal Lorsque vous essayez d'afficher la version Python dans Linux Terminal, entrez Python ...

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Lorsque vous utilisez la bibliothèque Pandas de Python, comment copier des colonnes entières entre deux frames de données avec différentes structures est un problème courant. Supposons que nous ayons deux dats ...

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Comment Uvicorn écoute-t-il en permanence les demandes HTTP? Uvicorn est un serveur Web léger basé sur ASGI. L'une de ses fonctions principales est d'écouter les demandes HTTP et de procéder ...

Dans Python, comment créer dynamiquement un objet via une chaîne et appeler ses méthodes? Il s'agit d'une exigence de programmation courante, surtout si elle doit être configurée ou exécutée ...

Utilisation de Python dans Linux Terminal ...

Fastapi ...
