Python · Intermediário · Inglês · Técnico
closure
Função que lembra as variáveis do escopo onde foi criada, mesmo depois que esse escopo terminou. Em Python, essas variáveis ficam em células referenciadas pela função.
Onde usar
É a base de decorators, callbacks e fábricas de funções. Em code review, aparece quando um contador interno precisa de nonlocal para poder ser modificado.
Em código
def contador():
n = 0
def inc():
nonlocal n
n += 1
return n
return inc # c = contador(); c() dá 1, 2Exemplos
That callback is a closure over the user id.
Esse callback é uma closure sobre o id do usuário.
The decorator returns a closure that remembers the function.
O decorator devolve uma closure que lembra a função.
Cuidado
Capturar não é copiar: a closure guarda a própria variável, não o valor que ela tinha no momento da criação.
Sinônimos
fechamento
Origem
Do inglês closure, 'fechamento': a função fecha sobre o ambiente em que nasceu.