Funzioni di prima classe in Python
In Python le funzioni sono trattate come oggetti di prima classe. Ciò significa che possono essere utilizzati proprio come stringhe di numeri o qualsiasi altra variabile. Puoi:
- Assegnare funzioni alle variabili.
- Passateli come argomenti ad altre funzioni.
- Restituirli dalle funzioni.
- Memorizzarli in strutture dati come elenchi o dizionari.
Questa capacità ti consente di scrivere codice modulare riutilizzabile e potente.
Caratteristiche delle funzioni di prima classe
Le funzioni in Python hanno le seguenti importanti caratteristiche. Vediamoli uno per uno con degli esempi:
1. Assegnazione di funzioni alle variabili
Possiamo assegnare una funzione a una variabile e utilizzare la variabile per chiamare la funzione.
Esempio:
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' ))
Produzione
Hello Emma!
Spiegazione:
- La funzione msg è assegnata alla variabile f.
- Ora f può essere usato per chiamare msg mostrando che le funzioni si comportano come variabili.
2. Passaggio di funzioni come argomenti
Le funzioni possono essere passati come argomenti all'abilitazione di altre funzioni funzioni di ordine superiore .
Esempio:
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' ))
Produzione
Hello Alex!
Spiegazione:
- La funzione fun1 accetta un'altra funzione (fun2) come input.
- msg viene passato a fun1 che poi lo chiama con 'Alex'.
3. Funzioni di ritorno da altre funzioni
Una funzione può restituire un'altra funzione consentendo la creazione di fabbriche di funzioni.
Esempio:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Produzione
Message: Hello World!
Spiegazione:
- La funzione fun1 definisce un'altra funzione fun2 e la restituisce.
- func memorizza la funzione restituita fun2 che può essere eseguita in seguito.
Le funzioni possono essere memorizzate in strutture dati come elenchi O dizionari .
Esempio:
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 ))
Produzione
8 2
Spiegazione:
- Le funzioni di addizione e sottrazione sono memorizzate in un dizionario.
- Sono accessibili utilizzando le rispettive chiavi ed eseguiti direttamente.
Quale delle seguenti definizioni descrive meglio una funzione di prima classe nei linguaggi di programmazione?
- UN
Una funzione che può essere chiamata solo dal proprio ambito.
- B
Una funzione che può essere assegnata a variabili passate come argomenti e restituite da altre funzioni come qualsiasi altro oggetto.
- C
Una funzione che può essere definita solo al livello più alto di un modulo.
- D
Una funzione che può essere eseguita solo in un contesto specifico.
Nel contesto delle funzioni di prima classe, cos'è una funzione di ordine superiore?
- UN
Una funzione che può restituire solo tipi di dati primitivi.
- B
Una funzione che può accettare altre funzioni come argomenti o restituirle come risultati.
- C
Una funzione definita all'interno di un'altra funzione ma che non può essere restituita.
- D
Una funzione che viene eseguita in un thread separato.
Quale sarà l'output del seguente codice?
def saluto(nome):
return f'Ciao {nome}'
dire_ciao = salutare
print(say_hello('Geek'))
- UN
Ciao saluti
- B
salutare
- C
Ciao Geek
- D
TypeError
Le funzioni possono essere assegnate alle variabili. Qui say_hello diventa un altro riferimento per salutare.
Quale delle seguenti non è una proprietà delle funzioni di prima classe?
- UN
Le funzioni possono essere memorizzate in strutture dati
- B
Le funzioni possono essere assegnate alle variabili
- C
Le funzioni possono restituire altre funzioni
- D
Le funzioni possono restituire solo tipi primitivi
Le funzioni di prima classe possono restituire qualsiasi tipo, comprese altre funzioni, non limitate alle primitive.
Quale sarà l'output di questo codice?
def esterno():
def interno():
return 'Funzione interna'
ritorno interiore
funzione = esterno()
stampa(funzione())
- UN
Funzione interiore
- B
interno
- C
esterno
- D
Errore
outside() restituisce la funzione interna e func() la chiama restituendo la sua stringa.
Quale delle seguenti NON è una caratteristica delle funzioni di prima classe?
- UN
Possono essere assegnati a variabili.
- B
Possono essere passati come argomenti ad altre funzioni.
- C
Possono essere definiti solo una volta in un programma.
- D
Possono essere restituiti da altre funzioni.
Qual è l'output del seguente codice?
def make_moltiplicatore(n):
def moltiplicatore(x):
ritorno x * n
moltiplicatore di rendimento
doppio = crea_moltiplicatore(2)
stampa(doppio(5))
- UN
7
- B
10
- C
25
- D
Errore
make_multiplier(2) restituisce una funzione che moltiplica il suo argomento per 2. Quindi double(5) restituisce 10.
In che modo Python tratta le funzioni rispetto alle variabili?
- UN
Le funzioni sono oggetti statici
- B
Le funzioni sono costanti e non possono essere riassegnate
- C
Le funzioni sono cittadine di prima classe e possono essere memorizzate, passate e riassegnate
- D
Le funzioni devono essere dichiarate globali per essere utilizzate
Essere cittadini di prima classe significa che le funzioni possono essere assegnate, passate e restituite come altri oggetti.
Quiz completato con successo Il tuo punteggio: 2 /8 Precisione: 0% Accedi per visualizzare la spiegazione 1 /8 1 /8 < Previous Avanti >