PythonFunçõesintermediario

Função como argumento

Em muitos cenários reais, você precisa executar uma operação sobre um valor sem saber exatamente qual operação será — por exemplo, uma função que aplica diferentes transformações a dados recebidos. Em Python, isso é feito passando a própria função como argumento, sem os parênteses, para que ela possa ser chamada internamente. Esse padrão aparece em bibliotecas como pandas (com apply) ou em sorted() com o parâmetro key.

O PROBLEMA

Crie aplicar(funcao, valor) que recebe função e valor. Teste com dobro() e quadrado().

EXEMPLO

aplicar(dobro, 5) → 10
aplicar(quadrado, 4) → 16

SOBRE O CONCEITO

Funções em Python são objetos de primeira classe: podem ser atribuídas a variáveis e passadas como argumentos. Quando você escreve aplicar(dobro, 5), está passando a referência à função dobro, não o resultado de sua execução. O erro comum é escrever aplicar(dobro(), 5) — isso executa dobro imediatamente (o que provavelmente causa erro por falta de argumento) e passa seu retorno, não a função. Dentro de aplicar, você chama a função recebida com o valor: return funcao(valor). Isso permite reutilizar aplicar com qualquer função que receba um argumento e retorne um valor, como dobro ou quadrado, sem precisar de condicionais ou loops.

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