Функції першого класу в 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
Пояснення:
- Функції додавання та віднімання зберігаються в словнику.
- Доступ до них здійснюється за допомогою їхніх ключів і виконується безпосередньо.
Що з наведеного нижче найкраще описує першокласну функцію в мовах програмування?
- А
Функція, яку можна викликати лише з її власної області видимості.
- Б
Функція, яку можна призначити змінним, які передаються як аргументи та повертаються з інших функцій, як і будь-який інший об’єкт.
- C
Функція, яку можна визначити лише на верхньому рівні модуля.
- Д
Функція, яка може бути виконана лише в певному контексті.
Що таке функція вищого порядку в контексті функцій першого класу?
- А
Функція, яка може повертати лише примітивні типи даних.
- Б
Функція, яка може приймати інші функції як аргументи або повертати їх як результати.
- C
Функція, яка визначена в іншій функції, але не може бути повернута.
- Д
Функція, яка виконується в окремому потоці.
Що буде виводом наступного коду?
def greet(name):
return f'Hello {name}'
say_hello = вітати
print(say_hello('Geek'))
- А
Привіт вітати
- Б
вітати
- C
Привіт Гік
- Д
TypeError
Змінним можна призначати функції. Тут say_hello стає ще одним посиланням на привітання.
Що з наведеного не є властивістю функцій першого класу?
- А
Функції можуть зберігатися в структурах даних
- Б
Змінним можна призначати функції
- C
Функції можуть повертати інші функції
- Д
Функції можуть повертати лише примітивні типи
Першокласні функції можуть повертати будь-який тип, включаючи інші функції, не обмежуючись примітивами.
Що буде результатом цього коду?
def зовнішній():
def inner():
повернути "внутрішню функцію"
повернутися внутр
func = зовнішній()
print(func())
- А
Внутрішня функція
- Б
внутрішній
- C
зовнішній
- Д
Помилка
outer() повертає внутрішню функцію, а func() викликає її, повертаючи її рядок.
Що з наведеного НЕ є характеристикою першокласних функцій?
- А
Їх можна призначити змінним.
- Б
Їх можна передати як аргументи іншим функціям.
- C
Їх можна визначити лише один раз у програмі.
- Д
Їх можна повернути з інших функцій.
Що є результатом наведеного нижче коду?
def make_multiplier(n):
множник визначення (x):
повернути x * n
множник повернення
подвійний = make_multiplier(2)
print(double(5))
- А
7
- Б
10
- C
25
- Д
Помилка
make_multiplier(2) повертає функцію, яка множить свій аргумент на 2. Отже, double(5) повертає 10.
Як Python обробляє функції по відношенню до змінних?
- А
Функції є статичними об'єктами
- Б
Функції є постійними і не можуть бути перепризначені
- C
Функції є громадянами першого класу і можуть бути передані та перепризначені
- Д
Для використання функції мають бути оголошені глобальними
Бути громадянами першого класу означає, що функції можна передавати та повертати, як інші об’єкти.
Вікторина виконана успішно. Ваш результат: 2 /8 Точність: 0% Увійдіть, щоб переглянути пояснення 1 /8 1 /8 < Previous Далі >