← Questões de Programação

Programação · CONSULPLAN · 2022

Questão comentada de Programação

As funções em Python têm um grande número de recursos extras que tornam a programação mais simples. Considerando tais funções, assinale a afirmativa correta.

Gabarito: C

Em Python, funções podem carregar alguns truques bem úteis, e isso costuma aparecer em prova. Entre eles estão os closures, os geradores e palavras-chave como nonlocal, que ajudam a controlar o alcance das variáveis. A ideia central aqui é entender o que cada recurso faz de verdade, sem cair em nome bonito com conceito trocado. Um closure acontece quando uma função interna “lembra” de variáveis do escopo externo em que foi criada. Ou seja, mesmo depois que a função externa termina, a função interna ainda consegue usar aquelas variáveis capturadas. É exatamente isso que a alternativa C descreve: uma função que faz referência a variáveis do ambiente onde foi definida. Já os geradores em Python existem justamente por usarem a instrução yield, e não por evitarem ela. O nonlocal também é permitido em funções internas, para indicar que uma variável vem do escopo imediatamente externo da função, então não faz sentido dizer que ele não pode ser usado em funções simples de forma absoluta. E quanto ao retorno, usar None não é uma regra universal para “eliminar problemas”; muitas funções retornam valores úteis, e None é apenas um valor possível quando não há retorno explícito. Então, a banca quer testar se você reconhece o conceito de closure: a função guarda acesso ao contexto em que nasceu. É um clássico de Python, daqueles que parecem detalhe, mas caem quando a questão quer separar quem decora de quem entende.

Continue treinando

Questões relacionadas