Funkce první třídy v Pythonu
V Pythonu se s funkcemi zachází jako s prvotřídními objekty. To znamená, že je lze použít stejně jako řetězce čísel nebo jakoukoli jinou proměnnou. Můžete:
- Přiřaďte funkce proměnným.
- Předejte je jako argumenty jiným funkcím.
- Vraťte je z funkcí.
- Uložte je do datových struktur, jako jsou seznamy nebo slovníky.
Tato schopnost vám umožňuje psát opakovaně použitelný modulární a výkonný kód.
Charakteristika prvotřídních funkcí
Funkce v Pythonu mají následující důležité vlastnosti. Podívejme se na ně jeden po druhém s příklady:
1. Přiřazení funkcí proměnným
Můžeme přiřadit funkci k proměnné a použijte proměnnou k volání funkce.
Pří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!
Vysvětlení:
- Proměnné f je přiřazena funkce msg.
- Nyní lze f použít k volání msg, které ukazuje, že funkce se chovají jako proměnné.
2. Předávání funkcí jako argumentů
Funkce mohou být prošel jako argumenty na další funkce umožňující funkce vyššího řádu .
Pří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!
Vysvětlení:
- Funkce fun1 má jako vstup jinou funkci (fun2).
- msg je předán fun1, který jej pak zavolá 'Alex'.
3. Vrácení funkcí z jiných funkcí
Funkce může vrátit jinou funkci umožňující vytvoření funkčních továren.
Pří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!
Vysvětlení:
- Funkce fun1 definuje jinou funkci fun2 a vrací ji.
- func ukládá vrácenou funkci fun2, kterou lze provést později.
Funkce mohou být uloženy v datových strukturách jako seznamy nebo slovníky .
Pří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
Vysvětlení:
- Funkce sčítání a odečítání jsou uloženy ve slovníku.
- Jsou přístupné pomocí jejich klíčů a spouštějí se přímo.
Která z následujících možností nejlépe popisuje prvotřídní funkci v programovacích jazycích?
- A
Funkce, kterou lze volat pouze z jejího vlastního rozsahu.
- B
Funkce, kterou lze přiřadit proměnným předávaným jako argumenty a vracené z jiných funkcí jako jakýkoli jiný objekt.
- C
Funkce, kterou lze definovat pouze na nejvyšší úrovni modulu.
- D
Funkce, kterou lze provést pouze v určitém kontextu.
Co je v kontextu prvotřídních funkcí funkce vyššího řádu?
- A
Funkce, která může vracet pouze primitivní datové typy.
- B
Funkce, která může brát jiné funkce jako argumenty nebo je vracet jako výsledky.
- C
Funkce, která je definována v rámci jiné funkce, ale nelze ji vrátit.
- D
Funkce, která se provádí v samostatném vláknu.
Jaký bude výstup následujícího kódu?
def pozdrav (jméno):
return f'Ahoj {name}'
say_hello = pozdravit
print(say_hello('Geek'))
- A
Ahoj zdravím
- B
pozdravit
- C
Ahoj Geeku
- D
TypeError
Proměnným lze přiřadit funkce. Zde se say_hello stává dalším odkazem na pozdrav.
Která z následujících vlastností není vlastností prvotřídních funkcí?
- A
Funkce mohou být uloženy v datových strukturách
- B
Proměnným lze přiřadit funkce
- C
Funkce mohou vracet jiné funkce
- D
Funkce mohou vracet pouze primitivní typy
Prvotřídní funkce mohou vracet jakýkoli typ včetně dalších funkcí – neomezených na primitiva.
Jaký bude výstup tohoto kódu?
def vnější():
def inner():
vrátit 'Vnitřní funkce'
vrátit vnitřní
func = vnější()
print(func())
- A
Vnitřní funkce
- B
vnitřní
- C
vnější
- D
Chyba
external() vrací vnitřní funkci a func() ji volá a vrací její řetězec.
Která z následujících NENÍ charakteristikou prvotřídních funkcí?
- A
Lze je přiřadit k proměnným.
- B
Mohou být předány jako argumenty jiným funkcím.
- C
V programu je lze definovat pouze jednou.
- D
Lze je vrátit z jiných funkcí.
Jaký je výstup následujícího kódu?
def make_multiplier(n):
def multiplikátor (x):
návrat x * n
návratový násobitel
double = make_multiplier(2)
tisknout(dvojitá(5))
- A
7
- B
10
- C
25
- D
Chyba
make_multiplier(2) vrátí funkci, která vynásobí svůj argument 2. Takže double(5) vrátí 10.
Jak Python zachází s funkcemi s ohledem na proměnné?
- A
Funkce jsou statické objekty
- B
Funkce jsou konstanty a nelze je znovu přiřadit
- C
Funkce jsou prvotřídní občané a mohou být uloženy, předány a znovu přiděleny
- D
Aby se funkce mohly používat, musí být deklarovány jako globální
Být prvotřídními občany znamená, že funkce lze přiřazovat, předávat a vracet jako jiné objekty.
Kvíz úspěšně dokončen Vaše skóre: 2 /8 Přesnost: 0 % Pro zobrazení vysvětlení se přihlaste 1 /8 1 /8 < Previous Další >