Return VS Yield en Python - Une courte bande dessinée

Et ce problème s'aggrave au fur et à mesure que nous traitons de données. Et s'il y a 1000 personnes dans la file ?
Le mot-clé 'retour'
def add10(x):
return x
x = add10(4) # x = 14
def get_takoballs(orders):
output = []
for order in orders:
output.append(f'{order} takoballs')
return output
y = get_takoballs([4,6,8])
# y = ['4 takoballs', '6 takoballs', '8 takoballs']
Le mot-clé "rendement"
Comme le return
mot-clé, le yield
mot-clé signifie la sortie d'une fonction.
Cependant, contrairement au return
mot-clé, une fonction peut générer yield
plusieurs sorties. Le yield
mot-clé n'arrête pas toute la fonction après son exécution.
def testfunction():
yield 4
yield 5
yield 6
for n in testfunction():
print(n)
# 4
# 5
# 6
def get_takoballs(orders):
for order in orders:
yield f'{order} takoballs'
for food in get_takoballs([4, 6, 8]):
print(food)
# 4 takoballs
# 6 takoballs
# 8 takoballs
Disons que nous avons 10000 clients dans notre stand tako (au lieu de seulement 3).
orders = # a list containing 10000 orders
def return_stall(orders):
# process all 10000 orders first
# then output all 10000 processed orders
output = []
for order in order:
output.append(f'{order} takoballs')
return output
def yield_stall(orders):
# process 1 order, then output it
# repeat til all 10000 orders are completed
for order in orders:
yield f'{order takoballs}'
Pour la yield_stall
fonction, chaque commande est cédée (remise au client) dès qu'elle est traitée. Le premier gars n'a plus qu'à attendre que sa commande soit terminée.
Conclusion
Si vous traitez une quantité importante de données, envisagez d'utiliser une fonction de générateur (une fonction qui utilise yield
) pour accélérer les choses. J'espère que c'était clair et utile !
Quelques mots de conclusion
Si cette histoire a apporté de la valeur et que vous souhaitez montrer un peu de soutien, vous pouvez :
- Applaudissez 50 fois pour cette histoire (ça m'aide vraiment, vraiment)
- Inscrivez-vous à un abonnement Medium en utilisant mon lien (5 $/mois pour lire un nombre illimité d'histoires Medium)
Codage de niveau supérieur
Merci de faire partie de notre communauté ! Avant que tu partes:
- Applaudissez pour l'histoire et suivez l'auteur
- Voir plus de contenu dans la publication Level Up Coding
- Cours d'entretien de codage gratuit ⇒ Voir le cours
- Suivez-nous : Twitter | LinkedIn | Bulletin