Revelação do fechamento: uma explicação simplificada
No reino da programação, os fechamentos muitas vezes surgem como um conceito desconcertante. Este artigo tem como objetivo desmistificar essas entidades enigmáticas, desvendando sua essência e iluminando sua utilidade, especificamente dentro do ecossistema Python.
What Lurks Beneath?
Um encerramento, pois pertence ao Python, é uma função extraordinária que carrega consigo o superpoder de “lembrar” o ambiente em que nasceu. Isso significa que quando um fechamento é invocado, ele tem acesso às variáveis e dados que prevaleciam em seu início, mesmo que esses elementos tenham desaparecido do escopo.
Implicações práticas e uso
A capacidade de um fechamento de "congelar" seu ambiente abre uma infinidade de possibilidades:
Aprofundando-se com um exemplo
Considere o seguinte trecho de código Python:
def make_counter():
i = 0
def counter():
nonlocal i
i = 1
return i
return counter
Aqui, make_counter gera um contador de função que é adornado com o poder de fechamento. Esta função, ao ser chamada, incrementa a variável interna i, preservando seu valor apesar da ausência de acesso direto ao escopo da função envolvente.
Quando instanciamos múltiplas instâncias de contador (como visto em c1 e c2), cada a instância opera em sua própria variável i privada. A saída de c1() e c2() será distinta e independente, mostrando a natureza encapsulante do fechamento.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3