First Class-funktioner i Python
I Python behandlas funktioner som förstklassiga objekt. Det betyder att de kan användas precis som nummersträngar eller vilken annan variabel som helst. Du kan:
- Tilldela funktioner till variabler.
- Skicka dem som argument till andra funktioner.
- Returnera dem från funktioner.
- Lagra dem i datastrukturer som listor eller ordböcker.
Denna förmåga låter dig skriva återanvändbar modulär och kraftfull kod.
Egenskaper hos förstklassiga funktioner
Funktioner i Python har följande viktiga egenskaper. Låt oss se dem en efter en med exempel:
1. Tilldela funktioner till variabler
Vi kan tilldela en funktion till en variabel och använd variabeln för att anropa funktionen.
Exempel:
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' ))
Produktion
Hello Emma!
Förklaring:
- Funktionen msg är tilldelad variabeln f.
- Nu kan f användas för att anropa msg som visar att funktioner beter sig som variabler.
2. Passerande funktioner som argument
Funktioner kan vara passerade som argument till andra funktioner som möjliggör högre ordningens funktioner .
Exempel:
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' ))
Produktion
Hello Alex!
Förklaring:
- Funktionen fun1 tar en annan funktion (fun2) som ingång.
- msg skickas till fun1 som sedan anropar det med 'Alex'.
3. Returnera funktioner från andra funktioner
En funktion kan returnera en annan funktion möjliggör skapandet av funktionsfabriker.
Exempel:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Produktion
Message: Hello World!
Förklaring:
- Funktionen fun1 definierar en annan funktion fun2 och returnerar den.
- func lagrar den returnerade funktionen fun2 som kan köras senare.
Funktioner kan lagras i datastrukturer som t.ex listor eller ordböcker .
Exempel:
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 ))
Produktion
8 2
Förklaring:
- Funktioner addera och subtrahera lagras i en ordbok.
- De nås med sina nycklar och exekveras direkt.
Vilket av följande beskriver bäst en förstklassig funktion i programmeringsspråk?
- A
En funktion som bara kan anropas inom sitt eget räckvidd.
- B
En funktion som kan tilldelas variabler som skickas som argument och returneras från andra funktioner som vilket annat objekt som helst.
- C
En funktion som endast kan definieras på översta nivån i en modul.
- D
En funktion som bara kan köras i ett specifikt sammanhang.
Vad är en högre ordningsfunktion i samband med förstklassiga funktioner?
- A
En funktion som bara kan returnera primitiva datatyper.
- B
En funktion som kan ta andra funktioner som argument eller returnera dem som resultat.
- C
En funktion som är definierad inom en annan funktion men som inte kan returneras.
- D
En funktion som körs i en separat tråd.
Vad blir resultatet av följande kod?
def hälsar (namn):
returnera f'Hej {name}'
säg_hej = hälsa
print(say_hello('Geek'))
- A
Hej hälsa
- B
hälsa
- C
Hej Geek
- D
TypeError
Funktioner kan tilldelas variabler. Här blir say_hello ytterligare en referens att hälsa på.
Vilket av följande är inte en egenskap hos förstklassiga funktioner?
- A
Funktioner kan lagras i datastrukturer
- B
Funktioner kan tilldelas variabler
- C
Funktioner kan returnera andra funktioner
- D
Funktioner kan bara returnera primitiva typer
Förstklassiga funktioner kan returnera vilken typ som helst inklusive andra funktioner – inte begränsade till primitiver.
Vad blir resultatet av denna kod?
def yttre():
def inner():
returnera 'Inre funktion'
återvända inre
func = yttre()
print(func())
- A
Inre funktion
- B
inre
- C
yttre
- D
Fel
outer() returnerar den inre funktionen och func() anropar den och returnerar sin sträng.
Vilket av följande är INTE ett kännetecken för förstklassiga funktioner?
- A
De kan tilldelas variabler.
- B
De kan skickas som argument till andra funktioner.
- C
De kan bara definieras en gång i ett program.
- D
De kan returneras från andra funktioner.
Vad är resultatet av följande kod?
def make_multiplier(n):
def multiplikator(x):
returnera x * n
returmultiplikator
dubbel = make_multiplikator(2)
print(dubbel(5))
- A
7
- B
10
- C
25
- D
Fel
make_multiplier(2) returnerar en funktion som multiplicerar dess argument med 2. Så double(5) returnerar 10.
Hur behandlar Python funktioner med avseende på variabler?
- A
Funktioner är statiska objekt
- B
Funktioner är konstanter och kan inte tilldelas om
- C
Funktioner är förstklassiga medborgare och kan lagras godkända och omtilldelas
- D
Funktioner måste deklareras som globala för att kunna användas
Att vara förstklassiga medborgare innebär att funktioner kan tilldelas godkända och returnerade som andra objekt.
Frågesport avslutade framgångsrikt ditt resultat: 2 /8 Noggrannhet: 0 % Logga in för att se förklaring 1 /8 1 /8 < Previous Nästa >