As funções em Python têm um grande número de recursos extra...

Próximas questões
Com base no mesmo assunto
Q2115354 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.
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C, que afirma que os closures são funções que fazem referência a variáveis a partir do escopo em que foram definidas. Isso está correto porque um closure em programação é uma técnica em que uma função é capaz de "lembrar" o ambiente em que foi criada, mesmo quando é chamada fora daquele contexto. Isso permite que a função acesse variáveis que não estão no escopo atual, mas que estavam no escopo no momento da definição da função.

Esta característica de closures é especialmente poderosa em Python, pois permite que programadores criem funções que têm um estado persistente entre chamadas, sem a necessidade de usar objetos ou outras estruturas mais complexas. Por exemplo, você pode ter uma função interna que acessa variáveis da função externa, criando um closure.

As outras alternativas são incorretas por diferentes razões:

  • Alternativa A: O comando nonlocal é utilizado justamente dentro de funções aninhadas para indicar que uma variável se refere a um escopo não local, mas também não global. Portanto, pode ser usado em funções complexas que envolvem escopos aninhados.
  • Alternativa B: A afirmação é exatamente o oposto do verdadeiro sobre funções geradoras. A característica principal das funções geradoras é que elas usam a expressão yield para pausar a execução e retornar um valor temporariamente, retomando de onde pararam na próxima vez que são chamadas.
  • Alternativa D: Usar None como valor de retorno em uma função não é uma prática que tem como objetivo "eliminar diversos problemas". Na verdade, None é frequentemente usado como um valor de retorno quando uma função não precisa retornar algum valor específico, mas isso não é uma regra e depende do contexto do programa.

Entender esses conceitos é essencial para a programação em Python, tanto para o uso efetivo da linguagem em projetos reais quanto para a preparação para concursos públicos na área de tecnologia da informação.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo