Първокласни функции в 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 въпроса

Кое от следните най-добре описва първокласна функция в езиците за програмиране?

  • А

    Функция, която може да бъде извикана само от собствения си обхват.

  • б

    Функция, която може да бъде присвоена на променливи, предадени като аргументи и върнати от други функции като всеки друг обект.

  • В

    Функция, която може да бъде дефинирана само на най-високото ниво на модул.

  • г

    Функция, която може да се изпълни само в определен контекст.

Обяснение:


В контекста на функциите от първи клас какво е функция от по-висок ред?

  • А

    Функция, която може да връща само примитивни типове данни.

  • б

    Функция, която може да приема други функции като аргументи или да ги връща като резултати.

  • В

    Функция, която е дефинирана в друга функция, но не може да бъде върната.

  • г

    Функция, която се изпълнява в отделна нишка.

Обяснение:


Какъв ще бъде резултатът от следния код?

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 третира функциите по отношение на променливите?

  • А

    Функциите са статични обекти

  • б

    Функциите са константи и не могат да бъдат преназначавани

  • В

    Функциите са граждани от първа класа и могат да бъдат съхранявани и преназначавани

  • г

    Функциите трябва да бъдат декларирани като глобални, за да бъдат използвани

Обяснение:

Това, че сте първокласни граждани, означава, че функциите могат да бъдат присвоявани, предавани и връщани като други обекти.

Първокласни функции в PythonТестът е завършен успешно Вашият резултат:   2 /8 Точност:  0% Влезте, за да видите обяснението 1 /8 1 /8 < Previous Следващ >