Funkcie prvej triedy v Pythone
V Pythone sa s funkciami zaobchádza ako s prvotriednymi objektmi. To znamená, že ich možno použiť ako reťazce čísel alebo akúkoľvek inú premennú. Môžete:
- Priraďte funkcie premenným.
- Odovzdajte ich ako argumenty iným funkciám.
- Vráťte ich z funkcií.
- Uložte ich do dátových štruktúr, ako sú zoznamy alebo slovníky.
Táto schopnosť vám umožňuje písať opakovane použiteľný modulárny a výkonný kód.
Charakteristika prvotriednych funkcií
Funkcie v Pythone majú nasledujúce dôležité vlastnosti. Pozrime sa na ne jeden po druhom s príkladmi:
1. Priradenie funkcií k premenným
Môžeme priradiť funkciu premennej a použite premennú na volanie funkcie.
Príklad:
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' ))
Výstup
Hello Emma!
Vysvetlenie:
- Premennej f je priradená funkcia msg.
- Teraz f možno použiť na zavolanie správy msg, čo ukazuje, že funkcie sa správajú ako premenné.
2. Odovzdávanie funkcií ako argumentov
Funkcie môžu byť prešlo ako argumenty na ďalšie funkcie umožňujúce funkcie vyššieho rádu .
Príklad:
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' ))
Výstup
Hello Alex!
Vysvetlenie:
- Funkcia fun1 berie ako vstup inú funkciu (fun2).
- msg sa odovzdá fun1, ktorý ju potom zavolá 'Alex'.
3. Vrátenie funkcií z iných funkcií
Funkcia môže vrátiť inú funkciu umožňujúce vytváranie funkčných tovární.
Príklad:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Výstup
Message: Hello World!
Vysvetlenie:
- Funkcia fun1 definuje inú funkciu fun2 a vráti ju.
- func ukladá vrátenú funkciu fun2, ktorá môže byť vykonaná neskôr.
Funkcie môžu byť uložené v dátových štruktúrach ako napr zoznamy alebo slovníkov .
Príklad:
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 ))
Výstup
8 2
Vysvetlenie:
- Funkcie sčítania a odčítania sú uložené v slovníku.
- Sú prístupné pomocou ich kľúčov a spúšťajú sa priamo.
Ktorá z nasledujúcich možností najlepšie popisuje prvotriednu funkciu v programovacích jazykoch?
- A
Funkcia, ktorú možno volať len v rámci jej vlastného rozsahu.
- B
Funkcia, ktorá môže byť priradená k premenným odovzdaným ako argumenty a vrátené z iných funkcií ako akýkoľvek iný objekt.
- C
Funkcia, ktorú možno definovať iba na najvyššej úrovni modulu.
- D
Funkcia, ktorú možno vykonať iba v špecifickom kontexte.
Čo je to funkcia vyššieho rádu v kontexte prvotriednych funkcií?
- A
Funkcia, ktorá môže vrátiť iba primitívne dátové typy.
- B
Funkcia, ktorá môže brať iné funkcie ako argumenty alebo ich vrátiť ako výsledky.
- C
Funkcia, ktorá je definovaná v rámci inej funkcie, ale nemôže byť vrátená.
- D
Funkcia, ktorá sa vykonáva v samostatnom vlákne.
Aký bude výstup nasledujúceho kódu?
def pozdrav(meno):
return f'Ahoj {name}'
say_hello = pozdraviť
print(say_hello('Geek'))
- A
Ahoj pozdravujem
- B
pozdraviť
- C
Ahoj Geek
- D
TypeError
Premenným je možné priradiť funkcie. Tu sa say_hello stáva ďalším odkazom na pozdrav.
Ktorá z nasledujúcich vlastností nie je vlastnosťou prvotriednych funkcií?
- A
Funkcie môžu byť uložené v dátových štruktúrach
- B
Premenným je možné priradiť funkcie
- C
Funkcie môžu vrátiť iné funkcie
- D
Funkcie môžu vrátiť iba primitívne typy
Prvotriedne funkcie môžu vrátiť akýkoľvek typ vrátane iných funkcií – nie sú obmedzené na primitíva.
Aký bude výstup tohto kódu?
def vonkajšie():
def inner():
vrátiť 'Vnútorná funkcia'
vrátiť vnútorné
func = vonkajšie()
print(func())
- A
Vnútorná funkcia
- B
vnútorné
- C
vonkajší
- D
Chyba
external() vracia vnútornú funkciu a func() ju volá a vracia jej reťazec.
Ktorá z nasledujúcich NIE JE charakteristikou prvotriednych funkcií?
- A
Môžu byť priradené k premenným.
- B
Môžu byť odovzdané ako argumenty iným funkciám.
- C
Môžu byť definované iba raz v programe.
- D
Môžu byť vrátené z iných funkcií.
Aký je výstup nasledujúceho kódu?
def make_multiplier(n):
def multiplikátor (x):
návrat x * n
návratový multiplikátor
double = make_multiplier(2)
vytlačiť(dvojité(5))
- A
7
- B
10
- C
25
- D
Chyba
make_multiplier(2) vráti funkciu, ktorá vynásobí svoj argument číslom 2. Takže double(5) vráti 10.
Ako Python zaobchádza s funkciami vzhľadom na premenné?
- A
Funkcie sú statické objekty
- B
Funkcie sú konštanty a nemožno ich priradiť
- C
Funkcie sú prvotriednymi občanmi a môžu byť uložené, odovzdané a znovu pridelené
- D
Aby sa funkcie mohli používať, musia byť deklarované ako globálne
Byť prvotriednymi občanmi znamená, že funkcie môžu byť priradené, odovzdané a vrátené ako iné predmety.
Kvíz úspešne dokončený Vaše skóre: 2 /8 Presnosť: 0% Prihláste sa na zobrazenie vysvetlenia 1 /8 1 /8 < Previous Ďalej >