Funcions de primera classe en Python
A Python les funcions es tracten com a objectes de primera classe. Això vol dir que es poden utilitzar com cadenes numèriques o qualsevol altra variable. Pots:
- Assignar funcions a variables.
- Passeu-los com a arguments a altres funcions.
- Torna-los de les funcions.
- Emmagatzemeu-los en estructures de dades com ara llistes o diccionaris.
Aquesta capacitat us permet escriure codi modular i potent reutilitzable.
Característiques de les funcions de primera classe
Les funcions en Python tenen les següents característiques importants. Vegem-los un per un amb exemples:
1. Assignació de funcions a variables
Podem assignar una funció a una variable i utilitzeu la variable per cridar la funció.
Exemple:
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' ))
Sortida
Hello Emma!
Explicació:
- La funció msg s'assigna a la variable f.
- Ara es pot utilitzar f per cridar a msg mostrant que les funcions es comporten com a variables.
2. Passant funcions com a arguments
Les funcions poden ser passat com a arguments a altres funcions habilitants funcions d'ordre superior .
Exemple:
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' ))
Sortida
Hello Alex!
Explicació:
- La funció fun1 pren una altra funció (fun2) com a entrada.
- msg es passa a fun1 que després l'anomena amb "Alex".
3. Retorn de funcions d'altres funcions
Una funció pot retorna una altra funció permetent la creació de fàbriques de funcions.
Exemple:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Sortida
Message: Hello World!
Explicació:
- La funció fun1 defineix una altra funció fun2 i la retorna.
- func emmagatzema la funció retornada fun2 que es pot executar més tard.
Les funcions es poden emmagatzemar en estructures de dades com llistes o diccionaris .
Exemple:
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 ))
Sortida
8 2
Explicació:
- Les funcions de suma i resta s'emmagatzemen en un diccionari.
- S'hi accedeix mitjançant les seves claus i s'executen directament.
Quina de les opcions següents descriu millor una funció de primera classe en llenguatges de programació?
- A
Una funció que només es pot cridar des del seu propi àmbit.
- B
Una funció que es pot assignar a variables passats com a arguments i retornats d'altres funcions com qualsevol altre objecte.
- C
Una funció que només es pot definir al nivell superior d'un mòdul.
- D
Una funció que només es pot executar en un context específic.
En el context de les funcions de primera classe, què és una funció d'ordre superior?
- A
Una funció que només pot retornar tipus de dades primitius.
- B
Una funció que pot prendre altres funcions com a arguments o retornar-les com a resultats.
- C
Una funció que es defineix dins d'una altra funció però que no es pot retornar.
- D
Una funció que s'executa en un fil separat.
Quina serà la sortida del següent codi?
salutació def (nom):
torna f'Hola {nom}'
dir_hola = saludar
imprimir(say_hola('Geek'))
- A
Hola salutació
- B
saludar
- C
Hola Geek
- D
TypeError
Les funcions es poden assignar a variables. Aquí say_hello es converteix en una altra referència per saludar.
Quina de les següents no és una propietat de les funcions de primera classe?
- A
Les funcions es poden emmagatzemar en estructures de dades
- B
Les funcions es poden assignar a variables
- C
Les funcions poden retornar altres funcions
- D
Les funcions només poden retornar tipus primitius
Les funcions de primera classe poden retornar qualsevol tipus, incloses altres funcions, no limitades a les primitives.
Quina serà la sortida d'aquest codi?
def outer():
def inner():
retornar "Funció interna"
tornar a l'interior
func = exterior()
imprimir(func())
- A
Funció interna
- B
interior
- C
exterior
- D
Error
outer() retorna la funció interna i func() la crida retornant la seva cadena.
Quina de les següents NO és una característica de les funcions de primera classe?
- A
Es poden assignar a variables.
- B
Es poden passar com a arguments a altres funcions.
- C
Només es poden definir una vegada en un programa.
- D
Es poden retornar d'altres funcions.
Quina és la sortida del codi següent?
def make_multiplicator(n):
multiplicador def (x):
retornar x * n
multiplicador de retorn
doble = make_multiplicator(2)
imprimir (doble (5))
- A
7
- B
10
- C
25
- D
Error
make_multiplier(2) retorna una funció que multiplica el seu argument per 2. Per tant, double(5) retorna 10.
Com tracta Python les funcions respecte a les variables?
- A
Les funcions són objectes estàtics
- B
Les funcions són constants i no es poden reassignar
- C
Les funcions són ciutadans de primera classe i es poden emmagatzemar aprovades i reassignades
- D
Les funcions s'han de declarar globals per ser utilitzades
Ser ciutadans de primera classe significa que les funcions es poden assignar aprovades i retornades com altres objectes.
Test completat amb èxit La teva puntuació: 2 /8 Precisió: 0% Inicieu sessió per veure l'explicació 1 /8 1 /8 < Previous Següent >