Table des matières
Qu'est-ce que le rendement Python ?
Exemple
Sortie
Différence entre le rendement et le retour en Python
Conclusion
Maison développement back-end Tutoriel Python Quelle est la différence entre le rendement et le retour en Python ?

Quelle est la différence entre le rendement et le retour en Python ?

Sep 15, 2023 pm 03:37 PM
rendement - générateur retour - valeur de retour Différence : rendement par rapport au rendement

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)
Copier après la connexion

Sortie

The number of 'p' in word is: 2
Copier après la connexion

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) 
Copier après la connexion

Sortie

Happy Birthday
Pradeep
Copier après la connexion

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'instruction

yield 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!

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

Video Face Swap

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 !

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 résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Comment résoudre le problème des autorisations rencontré lors de la visualisation de la version Python dans le terminal Linux? Apr 01, 2025 pm 05:09 PM

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 le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

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 ...

Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Comment copier efficacement la colonne entière d'une dataframe dans une autre dataframe avec différentes structures dans Python? Apr 01, 2025 pm 11:15 PM

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é par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

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 sans servir_forever ()? Comment Uvicorn écoute-t-il en permanence les demandes HTTP sans servir_forever ()? Apr 01, 2025 pm 10:51 PM

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 ...

Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Comment créer dynamiquement un objet via une chaîne et appeler ses méthodes dans Python? Apr 01, 2025 pm 11:18 PM

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 ...

See all articles