Generator (ciência da computação)
Origem: Wikipédia, a enciclopédia livre.
Em ciência da computação, um generator (em português, gerador) é um procedimento especial que pode ser usado para controlar iteradores de loops. Um generator é muito similar para funções que retornam arrays (ou vetores), generators podem ter parâmetros, que também podem ser chamados e geram uma sequência de valores. Entretanto, em vez de construir uma sequência que contenha todos os valores e os retornam de uma só vez, um generator utiliza a palavra-chave yield para retornar os valores um de cada vez, que utiliza menos memória e permite o processamento de poucos valores rápidamente. Um generator é uma função mas comporta-se como um iterador.
As primeiras aparições de Generators foram na CLU em 1975, [1] e atualmente são encontradas facilmente em softwares em linguagem de programação Python e C#. (em CLU e C# generators são chamados de iteradores).
Generators são usualmente utilizados dentro de loops nas funções, que podem reduzir de grandes e demorados loops para únicos loops e rápidos.
Um exemplo de generator em Python:
def contador(n): while True: yield n n += 1 for i in contador(10): if i <= 20: print i else: break
Em Python, um generator pode ser pensado como um iterador que contem uma pilha. Sempre que é usado um iterator o método do next()
é chamado, e é executado normalmente até o próximo yield
ser alcançado. O gerador é congelado então outra vez, e o valor yield é retornado a quem o chamou. Os geradores computam seus valores yield somente por demanda, são úteis para representar as seqüências que são de difícil processamento pelo computador.
[editar] Ver também
- List comprehension para outras construções de sequências de valores.
- Design pattern de software.