Questão de Programação — Python — Quadrix 2025
- Código
- qg600014
- Banca
- Quadrix
- Órgão
- CRO-SP
- Ano
- 2025
- Nível
- Superior
- Cargo
- Analista de Desenvolvimento de Sistemas de Informação
- CCerto
- EErrado
GabaritoC — Certo
Gabarito: letra C (Certo). Em Python, é perfeitamente válido definir funções dentro de outras funções — as chamadas funções aninhadas (nested functions) — e essa é uma técnica útil para encapsular lógica específica, como cálculos internos de um relatório, sem poluir o escopo global. A afirmação está correta.
O que são funções aninhadas? Em Python, uma função é um bloco de código definido com a palavra-chave def. Assim como você pode definir uma função no nível principal de um módulo, pode também defini-la dentro do corpo de outra função. A função interna só existe dentro do escopo da função externa — ela não é visível fora dela. Isso é uma forma de encapsulamento: a lógica auxiliar fica escondida, organizada e não interfere no restante do código.
Por que isso é útil? Imagine um relatório financeiro que precisa calcular um imposto com uma fórmula complexa. Em vez de criar uma função global que só é usada ali, você pode definir a função de cálculo dentro da função que gera o relatório. Isso mantém o código mais coeso e evita "poluir" o espaço de nomes global com funções que não serão reutilizadas. Além disso, funções aninhadas podem acessar variáveis da função externa (closure), o que permite capturar valores do contexto sem precisar passá-los como parâmetros.
Um exemplo prático:
def gerar_relatorio(valor_bruto):
def calcular_imposto(valor):
return valor * 0.15 # 15% de imposto
imposto = calcular_imposto(valor_bruto)
return valor_bruto - imposto
print(gerar_relatorio(1000)) # Saída: 850.0Aqui, calcular_imposto é uma função aninhada dentro de gerar_relatorio. Ela encapsula a lógica do imposto e só pode ser chamada de dentro de gerar_relatorio. Se você tentar chamar calcular_imposto fora dela, receberá um erro NameError.
É importante não confundir funções aninhadas com funções lambda. As funções lambda são funções anônimas de uma única expressão, criadas com a palavra-chave lambda. As funções aninhadas são funções completas, com nome, que podem ter múltiplas linhas e comandos. Ambas são recursos válidos e úteis, mas servem a propósitos diferentes.
A banca explora aqui um conhecimento básico, mas fundamental, da sintaxe de Python. A afirmação é direta e correta: Python permite definir funções dentro de outras funções, e isso é útil para encapsular lógica. Não há pegadinha ou exceção — é uma característica da linguagem.
A afirmação está correta. Python permite a definição de funções dentro de outras funções, conhecidas como funções aninhadas. Essa é uma técnica válida e útil para encapsular lógica específica, como cálculos internos de um relatório, mantendo o código organizado e evitando poluir o escopo global. A função interna só é acessível dentro do escopo da função externa, o que reforça o encapsulamento.
Gabarito: letra C
Link permanente: /questoes/qg600014