Funções de primeira classe em Python

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.
Questionário sugerido Editar questionário 8 perguntas

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.

Explicação:


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.

Explicação:


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

Explicação:

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

Explicação:

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

Explicação:

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.

Explicação:


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

Explicação:

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

Explicação:

Ser cidadãos de primeira classe significa que funções podem ser atribuídas, passadas e retornadas como outros objetos.

Funções de primeira classe em PythonQuestioná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>