Funções de primeira classe em Python
Em Python, as funções são tratadas como objetos de primeira classe. Isso significa que eles podem ser usados como strings numéricas ou qualquer outra variável. Você pode:
- Atribuir funções a variáveis.
- Passe-os como argumentos para outras funções.
- Retorne-os das funções.
- Armazene-os em estruturas de dados como listas ou dicionários.
Essa capacidade permite que você escreva código modular e poderoso reutilizável.
Características das funções de primeira classe
As funções em Python têm as seguintes características importantes. Vamos vê-los um por um com exemplos:
1. Atribuindo funções a variáveis
Pudermos atribuir uma função a uma variável e use a variável para chamar a função.
Exemplo:
Python def msg ( name ): return f 'Hello { name } !' # Assigning the function to a variable f = msg # Calling the function using the variable print ( f ( 'Emma' ))
Saída
Hello Emma!
Explicação:
- A função msg é atribuída à variável f.
- Agora f pode ser usado para chamar msg mostrando que as funções se comportam como variáveis.
2. Passando funções como argumentos
As funções podem ser passado como argumentos para outras funções que permitem funções de ordem superior .
Exemplo:
Python def msg ( name ): return f 'Hello { name } !' def fun1 ( fun2 name ): return fun2 ( name ) # Passing the msg function as an argument print ( fun1 ( msg 'Alex' ))
Saída
Hello Alex!
Explicação:
- A função fun1 recebe outra função (fun2) como entrada.
- msg é passada para fun1 que então a chama com 'Alex'.
3. Retornando funções de outras funções
Uma função pode retornar outra função permitindo a criação de fábricas de funções.
Exemplo:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Saída
Message: Hello World!
Explicação:
- A função fun1 define outra função fun2 e a retorna.
- func armazena a função retornada fun2 que pode ser executada posteriormente.
As funções podem ser armazenadas em estruturas de dados como listas ou dicionários .
Exemplo:
Python def add ( x y ): return x + y def subtract ( x y ): return x - y # Storing functions in a dictionary d = { 'add' : add 'subtract' : subtract } # Calling functions from the dictionary print ( d [ 'add' ]( 5 3 )) print ( d [ 'subtract' ]( 5 3 ))
Saída
8 2
Explicação:
- As funções de adição e subtração são armazenadas em um dicionário.
- Eles são acessados usando suas chaves e executados diretamente.
Qual das alternativas a seguir descreve melhor uma função de primeira classe em linguagens de programação?
- UM
Uma função que só pode ser chamada dentro de seu próprio escopo.
- B
Uma função que pode ser atribuída a variáveis passadas como argumentos e retornadas de outras funções como qualquer outro objeto.
- C
Uma função que só pode ser definida no nível superior de um módulo.
- D
Uma função que só pode ser executada em um contexto específico.
No contexto de funções de primeira classe, o que é uma função de ordem superior?
- UM
Uma função que só pode retornar tipos de dados primitivos.
- B
Uma função que pode receber outras funções como argumentos ou retorná-las como resultados.
- C
Uma função definida dentro de outra função, mas que não pode ser retornada.
- D
Uma função que é executada em um thread separado.
Qual será a saída do código a seguir?
def cumprimentar(nome):
return f'Olá {nome}'
diga_olá = cumprimentar
imprimir(diga_olá('Geek'))
- UM
Olá, saudações
- B
saudar
- C
Olá geek
- D
Erro de tipo
As funções podem ser atribuídas a variáveis. Aqui say_hello se torna outra referência para cumprimentar.
Qual das alternativas a seguir não é uma propriedade de funções de primeira classe?
- UM
Funções podem ser armazenadas em estruturas de dados
- B
Funções podem ser atribuídas a variáveis
- C
Funções podem retornar outras funções
- D
Funções só podem retornar tipos primitivos
Funções de primeira classe podem retornar qualquer tipo, incluindo outras funções – não limitadas a primitivas.
Qual será a saída deste código?
def externo():
def interno():
retornar 'função interna'
retornar para dentro
func=externo()
imprimir(função())
- UM
Função interna
- B
interno
- C
exterior
- D
Erro
outer() retorna a função interna e func() a chama retornando sua string.
Qual das alternativas a seguir NÃO é uma característica das funções de primeira classe?
- UM
Eles podem ser atribuídos a variáveis.
- B
Eles podem ser passados como argumentos para outras funções.
- C
Eles só podem ser definidos uma vez em um programa.
- D
Eles podem ser retornados de outras funções.
Qual é a saída do código a seguir?
def make_multiplicador(n):
multiplicador de definição (x):
retornar x * n
multiplicador de retorno
duplo = make_multiplier(2)
imprimir(duplo(5))
- UM
7
- B
10
- C
25
- D
Erro
make_multiplier(2) retorna uma função que multiplica seu argumento por 2. Então double(5) retorna 10.
Como o Python trata as funções em relação às variáveis?
- UM
Funções são objetos estáticos
- B
Funções são constantes e não podem ser reatribuídas
- C
As funções são cidadãs de primeira classe e podem ser armazenadas, passadas e reatribuídas
- D
As funções devem ser declaradas globais para serem usadas
Ser cidadãos de primeira classe significa que funções podem ser atribuídas, passadas e retornadas como outros objetos.
Questionário concluído com sucesso Sua pontuação: 2 /8 Precisão : 0% Faça login para ver a explicação 1 /8 1 /8 < Previous Próximo>