1
resposta

#lazy?

Olá colegas, não entendi o que o professor quis dizer chamando a as partes de código de #lazy (preguiçoso). Alguém pode me explicar?

1 resposta

Olá Pedro, tudo bem com você?

Uma avaliação preguiçosa (Lazy Evaluation) deixará o seus valores apenas quando necessários, por baixo dos panos o Python irá esperar ao máximo para disponibilizar o valor de uma expressão, podemos usar uma comparação com um aluno que esperar ao máximo para realizar uma atividade, realizando a mesma apenas quando solicitado pelo professor.

A Partir do Python 3 esse tipo de avaliação foi implementado com o objetivo de otimizar o uso de memória e de tempo de processo.

A função range() é uma função do tipo lazy, ela irá criar um intervalo de números, mas essa função irá armazenar na memória apenas os valores de início (start), parada (stop), e passo (set) e irá calcular cada item do intervalo apenas quando necessário.

Tomamos como exemplo a criação de um intervalo que iniciará pelo zero (0) terá como ponto de parada dez (10) e o passo de dois (2). Lembrando que o ponto inicial é inclusivo e o ponto de parada é exclusivo, temos o código a seguir.


print(range(0, 10, 2))

Resultado

range(0, 10, 2)

Note que o resultado não foi a criação de todo intervalo (0, 2, 4, 6, 8), foi informado como resultado que a função range() possui aqueles dados como parâmetros (start , stop, step) e que para acessarmos os elementos desse intervalo devemos solicitar esses valores, assim eles serão disponibilizado um a um, não sendo necessário disponibilizar todos os valores ao mesmo tempo, assim temos a avaliação preguiçosa (Lazy Evaluation):

for numero in range(0, 10, 2):
    print(numero)

Resultado

0
2
4
6
8

Em resumo, quando o professor fala que uma parte do código é do tipo lazy, ele está fazendo referência ao tipo de execução desta parte, onde ela só irá disponibilizar algo quando for pedido, ficando em “stand-by” até ser chamado.

Para saber um pouco mais sobre avaliação preguiçosa (Lazy Evaluation), recomendo a leitura do seguinte artigo:

O artigo está em inglês, caso tenha dificuldades com o idioma recomendo o uso do tradutor do navegador.

Coloco-me à disposição em caso de dúvidas.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software