Функції першого класу в Python

Функції першого класу в 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  

Пояснення:

  • Функції додавання та віднімання зберігаються в словнику.
  • Доступ до них здійснюється за допомогою їхніх ключів і виконується безпосередньо.
Запропонована вікторина Редагувати вікторину 8 Питання

Що з наведеного нижче найкраще описує першокласну функцію в мовах програмування?

  • А

    Функція, яку можна викликати лише з її власної області видимості.

  • Б

    Функція, яку можна призначити змінним, які передаються як аргументи та повертаються з інших функцій, як і будь-який інший об’єкт.

  • 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

    Функції є громадянами першого класу і можуть бути передані та перепризначені

  • Д

    Для використання функції мають бути оголошені глобальними

Пояснення:

Бути громадянами першого класу означає, що функції можна передавати та повертати, як інші об’єкти.

Функції першого класу в PythonВікторина виконана успішно. Ваш результат:   2 /8 Точність:  0% Увійдіть, щоб переглянути пояснення 1 /8 1 /8 < Previous Далі >