Quais são alguns casos de uso simples para geradores de Python?

Um rastreador da Web que segue todos os links em uma página e faz algum processamento de cada página que ele baixa:

das coleções import deque
pedidos de importação

def get_pages (link):
links_to_visit = deque ([link])
while deque:
page = orders.get (deque.popleft ())
# Necessidade de implementar extract_links
deque.extend (links_extratos (página))

# Aqui produzimos a página que acabamos de recuperar, esta
# retorna o controle de volta ao chamador para processar o
# page antes de baixarmos mais páginas
página de rendimento

para página da web em get_pages (link):
“” ”
Faça algum processamento na página da web
“” ”

No código acima, o gerador nos permite obter páginas da Web uma por vez, processando-as e jogando-as fora enquanto avançamos. Sem um gerador, teríamos que escrever uma grande função de recuperação e processamento, tornando nosso código menos modular (ou faça o download de toda a Internet antes de processarmos a primeira página, claramente isso não funcionará).


Notas de rodapé:
Um deque é uma fila dupla que nos permite adicionar coisas de uma maneira eficiente e removê-las da outra 8.3. collections – Tipos de dados de contêiner de alto desempenho – documentação do Python 2.7.10

pedidos é uma ótima biblioteca para recuperar conteúdo através de http. Pedidos: HTTP para seres humanos

Sequências. Aqui está uma demonstração simples:

sequência de definição ():
enquanto True:
rendimento 1
rendimento 2

seq = sequência ()

print seq.next ()
print seq.next ()
print seq.next ()