Introduction au rendement des mots clés Python

不言
Libérer: 2018-10-16 15:59:19
avant
1860 Les gens l'ont consulté
Cet article vous présente le rendement du mot clé Python.Il a une certaine valeur de référence.Les amis dans le besoin peuvent s'y référer.J'espère qu'il vous sera utile.

Les coroutines sont un moyen de développer du code d'E/S asynchrone dans Tornado. La coroutine utilise le mot-clé Python rendement pour suspendre et reprendre l'exécution de l'appelant. Ainsi, avant d'en apprendre davantage sur les coroutines, nous devons d'abord nous familiariser avec le concept et l'utilisation de rendement. Pour comprendre le rendement, nous devons d'abord comprendre le concept d'itérateurs.

En Python, les itérateurs définis à l'aide du mot-clé rendement sont également appelés [générateurs]

1 Itérateurs

Les itérateurs (Itérateurs) sont un moyen d'accéder aux éléments d'une collection. L'objet itérateur commence à accéder au premier élément de la collection et se termine une fois que tous les éléments ont été accédés. Les itérateurs ne peuvent pas revenir en arrière, ils ne peuvent qu'itérer vers l'avant.

Le scénario le plus couramment utilisé pour les itérateurs en Python est l'instruction de boucle for, qui encapsule une collection avec un itérateur et accède aux éléments de la collection pour exécuter la boucle.

Par exemple :

for number in range(5):#range返回一个列表
    print(number)
Copier après la connexion

Le range() renvoie une collection contenant les éléments spécifiés, et l'instruction for l'encapsule dans un itérateur et y accède à l'aide de iter(). les ensembles sont convertis en itérateurs, par exemple :

numbers=[1,2,3,4,5]
#t就是迭代器
t=iter(numbers)
#打印t对象,以便查看其类型
print(t)
Copier après la connexion

Résultat renvoyé :

<list_iterator object at 0x10e805748>
Copier après la connexion

Par rapport aux objets Python ordinaires, les itérateurs ont une méthode __next__() supplémentaire, appelant à chaque fois cette méthode peut renvoyer un élément et l'appelant (comme une instruction for) peut accéder aux éléments de la collection en appelant continuellement la méthode __next__().

Par exemple :

numbers=[1,2,3,4,5]
#t就是迭代器
t=iter(numbers)
#打印t对象,以便查看其类型
print(t.__next__())
print(t.__next__())
print(t.__next__())
print(t.__next__())
Copier après la connexion

Résultat renvoyé :

1
2
3
4
Copier après la connexion

L'appelant peut continuer à appeler la méthode __next__() jusqu'à ce que l'exception StopIteration soit renvoyée.

2. Utiliser le rendement

Les itérateurs sont largement utilisés dans la programmation Python, alors comment les développeurs personnalisent-ils leurs propres itérateurs ?

La réponse est d'utiliser le mot-clé rendement.

L'appel de toute fonction définie contenant le mot-clé rendement n'exécutera pas la fonction, mais obtiendra un itérateur correspondant à la fonction.

Exemple :

import time
def demoIternator():
    print("---1---")
    yield 1
    print("---2---")
    yield 2
    print("---3---")
    yield 3
    print("---4---")

for x in demoIternator():
    print(x)
    time.sleep(1)
Copier après la connexion

Chaque fois que la méthode __next__() de l'itérateur est appelée, la fonction itérateur sera exécutée et le résultat de rendement sera renvoyé comme itération élément de retour.

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!

Étiquettes associées:
source:segmentfault.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal