PythonFunçõesavancado

Closure

Closures permitem que funções internas 'lembrem' do escopo onde foram criadas, mesmo após a função externa já ter terminado. Em código real, isso é útil para criar fábricas de funções personalizadas, como configurar handlers de eventos com parâmetros fixos ou gerar funções de validação com regras específicas. Dominar closures evita repetição de código e dá mais flexibilidade sem precisar de classes.

O PROBLEMA

Crie criar_multiplicador(n) que retorna função que multiplica por n.

SOBRE O CONCEITO

Uma closure ocorre quando uma função interna referencia variáveis da função externa, e essa função interna é retornada. No exercício, criar_multiplicador(n) deve retornar uma função anônima que multiplica seu argumento por n. O erro comum é não retornar a função interna — por exemplo, escrever apenas def multiplicar(x): return x * n dentro de criar_multiplicador sem o return multiplicar. Sem o return, a função externa retorna None, e a variável n fica inacessível fora do escopo. Lembre-se: em Python, def é uma instrução que cria uma função, mas é preciso explicitamente retorná-la para que ela seja usada fora. O uso de * nos permitidos indica que parâmetros com asterisco não devem ser usados aqui, pois não há necessidade.

RESOLUÇÃO

Mais exercícios de Funções

PYF026D · DesafioSistema de validaçãoPYF029D · DesafioAnalisador de textoPYF006B · BásicoFunção booleanaPYF009B · BásicoChamar função dentro de função
Ver todos os exercícios de Python