Python curso regular 40-- Generador

En este artículo los autores son todos originales, para la reimpresión, por favor indique la fuente: https://www.cnblogs.com/xuexianqi/p/12560562.html

Uno: ¿Cuál es el generador

Constructor es un iterador

Dos: Cómo obtener un iterador

Una vez que existe la palabra clave de rendimiento dentro de una función, llamar a la función no realiza la función de códigos corporales

Se devuelve un objeto generador, es decir, un iterador generador personalizado

def func():
    print('第一次')
    yield 1
    print('第二次')
    yield 2
    print('第三次')
    yield 3
    print('第四次')


g=func()
print(g)
# 生成器就是迭代器
g.__iter__()
g.__next__()

Puede desencadenar un código de cuerpo de la función, encuentros luego en rentabilidad se detuvo, el valor de rendimiento como resultado de esta llamada vuelve

res1=g.__next__()
print(res1)


res2=g.__next__()
print(res2)

res3=g.__next__()
print(res3)

res4=g.__next__()


len('aaa') # 'aaa'.__len__()

next(g)    # g.__next__()
iter(可迭代对象)     # 可迭代对象.__iter__()

III: columna caso de aplicación

def my_range(start,stop,step=1):
    # print('start...')
    while start < stop:
        yield start
        start+=step
    # print('end....')


g=my_range(1,5,2) # 1 3
print(next(g))
print(next(g))
print(next(g))

for n in my_range(1,7,2):
    print(n)

Cuatro: Resumen de rendimiento

Con la palabra clave de rendimiento, tenemos una manera de lograr iterador autodefinida.

rendimiento puede ser utilizado para devolver valores, pero a diferencia de la devolución, el retorno de la función que se encuentre una vez terminado, y el rendimiento puede mantener una función de estado corriendo suspender función para devolver múltiples valores

Supongo que te gusta

Origin www.cnblogs.com/xuexianqi/p/12560562.html
Recomendado
Clasificación