Questão FC373127
Considere o bloco de código Python abaixo. def calcula(n): return lambda a : a * n x = calcula(4) print(x(11)) Ao executar esse bloco de código em condições ideais,
Linguagens de Programação para Ciência de Dados
FCC · 2022
Considere o bloco de código Python abaixo.
def calcula(n):
return lambda a : a * n
x = calcula(4)
print(x(11))
Ao executar esse bloco de código em condições ideais,
- ocorrerá um erro de sintaxe na segunda linha do código.
- será exibido o valor 44.
- ocorrerá uma exceção do tipo InvalidMethodException na última linha do código.
- será exibido o valor 16.
- será exibido o valor 27.
Mostrar resposta e comentário
Gabarito
B
Comentário do professor
A função calcula recebe um parâmetro n e retorna uma função anônima (lambda) definida como lambda a: a * n — ou seja, uma função que multiplica seu parâmetro a pelo valor de n.
Ao fazer x = calcula(4), cria-se uma função em que o valor de n foi fixado como 4. Essa função retornada mantém o acesso ao valor de n mesmo após a execução de calcula (comportamento de closure).
Quando chamamos x(11) estamos passando a = 11 para a lambda, que calcula o produto \(11 \times 4\).
O comando print(x(11)) exibe, portanto, o resultado 44.
Conteúdo do catálogo FC Concursos · Atualizado em