As funções em Python têm um grande número de recursos extra...
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