Python, rendement, retour et parfois rendement de

Rendement en Python

En Python, vous pouvez utiliser yield dans une fonction en tant que générateur. Par exemple

def foo():
    for i in range(10):
       yield i

Écrit comme

for k in foo():
   print(k)

Si vous écrivez, la valeur de 0 à 9 s'affiche.

Rendement et retour combinés en Python

Par exemple

def hoge():
   for i in range(10):
      yield i
   return i+1

Si vous faites cela, vous n'obtiendrez que le résultat de ** yield. ** ** Ceci est une spécification Python, et la raison en est que le retour dans Generator est traité comme StopIteration. Par conséquent, il est prudent de penser qu'il est fondamentalement difficile d'utiliser le rendement et le rendement ensemble. Au contraire, le rendement agit comme un retour dans le générateur, donc fondamentalement Il vaut mieux se limiter au rendement ou au rendement.

Utilisez ensemble même si vous le forcez

Si, pour une raison quelconque, vous voulez l'utiliser avec return, utilisez yield from pour obtenir la valeur définie pour return. Vous pourrez le faire. Par exemple

def buzz():
  i = 0
  for j in range(10):
     i += j
     yield j
  return i

Si vous écrivez une fonction comme celle-ci et que vous souhaitez retourner, préparez une nouvelle fonction séparément et procédez comme suit Si vous l'écrivez, vous pouvez atteindre la valeur de retour.

def getter():
  x = yield from buzz()
  yield x

Cependant, notez que "yield from" est une technique qui ne peut être décrite que dans une fonction.

Résumé

Recommended Posts

Python, rendement, retour et parfois rendement de
Aplatir à l'aide du rendement Python de
Lire et utiliser des fichiers Python à partir de Python
À propos de Python, à partir et à l'importation, comme
[Python] renvoie A [ou / et] B
De Python à l'utilisation de MeCab (et CaboCha)
Portage et modification du solveur de doublets de python2 vers python3.
Retour anticipé de Python
À propos du rendement Python
sql à sql
MeCab de Python
Firebase: utilisez Cloud Firestore et Cloud Storage depuis Python
Étude à partir de Python Lecture et écriture de fichiers Hour9
[Python] Comment lire les données de CIFAR-10 et CIFAR-100
[Python] Trouver des coordonnées sous deux angles et une distance
Charger et exécuter la commande depuis yml avec python
Lier PHP et Python à partir de zéro sur Laravel
[python] Compresser et décompresser
Utilisez Thingsspeak de Python
[Python of Hikari-] Chapitre 06-04 Fonctions (arguments et valeurs de retour 3)
Touchez MySQL depuis Python 3
Astuces Python et Numpy
[Python] pip et roue
Exploitez Filemaker depuis Python
Utiliser fluentd de python
[Python of Hikari-] Chapitre 06-02 Fonction (argument et valeur de retour 1)
Accéder à bitcoind depuis python
Changements de Python 3.0 à Python 3.5
Changements de Python 2 à Python 3.0
Itérateur et générateur Python
Python depuis ou import
Paquets et modules Python
Intégration Vue-Cli et Python
Utilisez MySQL depuis Python
Contrôler d'autres programmes depuis Python (communication entre Python ⇔ exe)
Ruby, Python et carte
Exécutez Python à partir d'Excel
Installer Python à partir de la source
[Python débutant] Extrayez la préfecture et la ville de l'adresse (3 lignes).
Exécuter des commandes depuis Python
Récupérer le code retour d'un script Python depuis bat
Faites fonctionner le neutron de Python!
entrée et sortie python
Python et Ruby se séparent
Implémentation d'un générateur en utilisant Python> link> yield et next ()> yield
Utiliser MySQL depuis Python
Faire fonctionner LXC depuis Python
Recevoir des e-mails de Gmail et étiqueter avec Python3
Différence entre return, return None et no return description en Python
Manipuler riak depuis python
Forcer Python depuis Fortran
Utilisez BigQuery depuis Python.
Récupérer des fichiers depuis Linux en utilisant paramiko et scp [Python]
[Python of Hikari-] Chapitre 06-03 Fonctions (arguments et valeurs de retour 2)
Exécuter la commande depuis Python
[Python] Extraire uniquement les nombres des listes et des chaînes de caractères
Python asyncio et ContextVar
[Python] Lire depuis Stdin