Първокласни функции в Python
В Python функциите се третират като първокласни обекти. Това означава, че те могат да се използват точно като числови низове или всяка друга променлива. Можете да:
- Присвояване на функции на променливи.
- Предайте ги като аргументи на други функции.
- Върнете ги от функции.
- Съхранявайте ги в структури от данни като списъци или речници.
Тази способност ви позволява да пишете модулен и мощен код за многократна употреба.
Характеристики на първокласни функции
Функциите в Python имат следните важни характеристики. Нека ги видим един по един с примери:
1. Присвояване на функции на променливи
Ние можем присвояване на функция на променлива и използвайте променливата, за да извикате функцията.
Пример:
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' ))
Изход
Hello Emma!
Обяснение:
- Функцията msg се присвоява на променливата f.
- Сега f може да се използва за извикване на msg, показвайки, че функциите се държат като променливи.
2. Предаване на функции като аргументи
Функциите могат да бъдат преминаха като аргументи за активиране на други функции функции от по-висок ред .
Пример:
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' ))
Изход
Hello Alex!
Обяснение:
- Функцията fun1 приема друга функция (fun2) като вход.
- msg се предава на fun1, който след това го извиква с 'Alex'.
3. Връщане на функции от други функции
Една функция може върне друга функция което позволява създаването на функционални фабрики.
Пример:
Python def fun1 ( msg ): def fun2 (): return f 'Message: { msg } ' return fun2 # Getting the inner function func = fun1 ( 'Hello World!' ) print ( func ())
Изход
Message: Hello World!
Обяснение:
- Функцията fun1 дефинира друга функция fun2 и я връща.
- func съхранява върнатата функция fun2, която може да бъде изпълнена по-късно.
Функциите могат да се съхраняват в структури от данни като списъци или речници .
Пример:
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 ))
Изход
8 2
Обяснение:
- Функциите събиране и изваждане се съхраняват в речник.
- Те са достъпни с техните ключове и се изпълняват директно.
Кое от следните най-добре описва първокласна функция в езиците за програмиране?
- А
Функция, която може да бъде извикана само от собствения си обхват.
- б
Функция, която може да бъде присвоена на променливи, предадени като аргументи и върнати от други функции като всеки друг обект.
- В
Функция, която може да бъде дефинирана само на най-високото ниво на модул.
- г
Функция, която може да се изпълни само в определен контекст.
В контекста на функциите от първи клас какво е функция от по-висок ред?
- А
Функция, която може да връща само примитивни типове данни.
- б
Функция, която може да приема други функции като аргументи или да ги връща като резултати.
- В
Функция, която е дефинирана в друга функция, но не може да бъде върната.
- г
Функция, която се изпълнява в отделна нишка.
Какъв ще бъде резултатът от следния код?
def greet(име):
return f'Здравей {name}'
say_hello = поздрави
print(say_hello('Geek'))
- А
Здравейте поздравете
- б
поздравявам
- В
Здравей маниак
- г
TypeError
На променливи могат да се присвояват функции. Тук say_hello се превръща в друга препратка за поздрав.
Кое от следните не е свойство на първокласни функции?
- А
Функциите могат да се съхраняват в структури от данни
- б
На променливи могат да се присвояват функции
- В
Функциите могат да връщат други функции
- г
Функциите могат да връщат само примитивни типове
Първокласните функции могат да връщат всякакъв тип, включително други функции - без да се ограничават до примитиви.
Какъв ще бъде резултатът от този код?
def външен ():
def inner():
връщане на "вътрешна функция"
връщане вътрешен
func = външен ()
печат (func())
- А
Вътрешна функция
- б
вътрешен
- В
външен
- г
Грешка
outer() връща вътрешната функция и func() я извиква, връщайки нейния низ.
Кое от следните НЕ е характеристика на първокласните функции?
- А
Те могат да бъдат присвоени на променливи.
- б
Те могат да бъдат предавани като аргументи на други функции.
- В
Те могат да бъдат дефинирани само веднъж в програма.
- г
Те могат да бъдат върнати от други функции.
Какъв е резултатът от следния код?
def make_multiplier(n):
def множител (x):
връщане x * n
върнат множител
двойно = make_multiplier(2)
печат (двойно (5))
- А
7
- б
10
- В
25
- г
Грешка
make_multiplier(2) връща функция, която умножава своя аргумент по 2. Така double(5) връща 10.
Как Python третира функциите по отношение на променливите?
- А
Функциите са статични обекти
- б
Функциите са константи и не могат да бъдат преназначавани
- В
Функциите са граждани от първа класа и могат да бъдат съхранявани и преназначавани
- г
Функциите трябва да бъдат декларирани като глобални, за да бъдат използвани
Това, че сте първокласни граждани, означава, че функциите могат да бъдат присвоявани, предавани и връщани като други обекти.
Тестът е завършен успешно Вашият резултат: 2 /8 Точност: 0% Влезте, за да видите обяснението 1 /8 1 /8 < Previous Следващ >