La palabra clave yield
Escriba funciones generadoras con yield para crear iteradores personalizados.
La palabra clave yield es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.
Introducción
¿Qué es yield?
def count_up(n):
for i in range(n):
yield i
for x in count_up(3):
print(x)Función generadora frente a función normal
def gen():
print('start')
yield 1
print('middle')
yield 2
g = gen() # no print yet
print(next(g)) # 'start', then 1Generador infinito
def naturals(n=0):
while True:
yield n
n += 1
import itertools
print(list(itertools.islice(naturals(), 5)))yield from
def chain(*iters):
for it in iters:
yield from it
print(list(chain([1,2], [3,4], [5])))Enviar valores con send()
def accumulator():
total = 0
while True:
n = yield total
if n is None: break
total += n
g = accumulator()
next(g) # prime
print(g.send(10))
print(g.send(5))Estado del generador
def stateful():
seen = set()
while True:
item = yield
seen.add(item)
yield len(seen)
g = stateful()
next(g); g.send('a'); print(next(g)); g.send('b'); print(next(g))Cerrar un generador
def resource_gen():
try:
while True:
yield
finally:
print('cleaned up')
g = resource_gen()
next(g)
g.close()StopIteration y return
def gen_with_return():
yield 1
yield 2
return 'done'
g = gen_with_return()
try:
while True: print(next(g))
except StopIteration as e:
print('returned:', e.value)Generador de Fibonacci
def fibonacci():
a, b = 0, 1
while True:
yield a
a, b = b, a + b
import itertools
print(list(itertools.islice(fibonacci(), 10)))Generadores frente a clases con __iter__
# Generator is simpler than:
# class Counter:
# def __iter__(self): return self
# def __next__(self): ...
print('generators simplify iterators')Comprobación rápida
Repaso
Continúe
Preguntas frecuentes
¿La lección «La palabra clave yield» es gratis?
Sí — el texto completo de «La palabra clave yield» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.
¿Qué aprenderé en «La palabra clave yield»?
Escriba funciones generadoras con yield para crear iteradores personalizados. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Python Academy?
No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «La palabra clave yield»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Python Academy?
Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Comprensiones de listas
- Comprensiones de conjuntos y diccionarios
- Expresiones generadoras
- La palabra clave yield