Maison  >  Article  >  développement back-end  >  Introduction au rendement des mots clés Python

Introduction au rendement des mots clés Python

不言
不言avant
2018-10-16 15:59:191846parcourir
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)

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)

Résultat renvoyé :

<list_iterator object at 0x10e805748>

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__())

Résultat renvoyé :

1
2
3
4

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)

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer