Функције прве класе у Пајтону

Функције прве класе у Пајтону

У Питхон-у функције се третирају као првокласни објекти. То значи да се могу користити као низови бројева или било која друга променљива. можете:

  • Додели функције променљивим.
  • Проследите их као аргументе другим функцијама.
  • Вратите их из функција.
  • Чувајте их у структурама података као што су листе или речници.

Ова способност вам омогућава да пишете модуларан и моћан код за вишекратну употребу.

Карактеристике првокласних функција

Функције у Питхон-у имају следеће важне карактеристике. Погледајмо их један по један са примерима:

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!  

Објашњење:

  • Функција мсг је додељена променљивој ф.
  • Сада ф може да се користи за позивање поруке која показује да се функције понашају као променљиве.

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!  

Објашњење:

  • Функција фун1 узима другу функцију (фун2) као улаз.
  • мсг се прослеђује фун1 који је затим позива са 'Алек'.

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!  

Објашњење:

  • Функција фун1 дефинише другу функцију фун2 и враћа је.
  • фунц складишти враћену функцију фун2 која се може извршити касније.

Функције се могу чувати у структурама података као што су листе или речници .

Пример:

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 питања

Шта од следећег најбоље описује првокласну функцију у програмским језицима?

  • А

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

  • Б

    Функција која се може доделити променљивим које се прослеђују као аргументи и враћају из других функција као било који други објекат.

  • Ц

    Функција која се може дефинисати само на највишем нивоу модула.

  • Д

    Функција која се може извршити само у одређеном контексту.

Објашњење:


Шта је функција вишег реда у контексту првокласних функција?

  • А

    Функција која може да врати само примитивне типове података.

  • Б

    Функција која може узети друге функције као аргументе или их вратити као резултате.

  • Ц

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

  • Д

    Функција која се извршава у посебној нити.

Објашњење:


Шта ће бити резултат следећег кода?

деф поздрав (име):

ретурн ф'Здраво {наме}'


саи_хелло = поздрави

принт(саи_хелло('Штребер'))

  • А

    Здраво поздрав

  • Б

    поздравити

  • Ц

    Здраво Геек

  • Д

    ТипеЕррор

Објашњење:

Функције се могу доделити променљивим. Овде саи_хелло постаје још једна референца за поздрав.

Шта од следећег није својство првокласних функција?

  • А

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

  • Б

    Функције се могу доделити променљивим

  • Ц

    Функције могу вратити друге функције

  • Д

    Функције могу да враћају само примитивне типове

Објашњење:

Првокласне функције могу да врате било који тип укључујући и друге функције – не ограничавајући се на примитиве.

Шта ће бити резултат овог кода?

деф оутер():

деф иннер():

врати 'Унутрашња функција'

вратити унутрашњи

фунц = спољни()

принт(фунц())

  • А

    Унутрашња функција

  • Б

    унутрашњег

  • Ц

    спољашњи

  • Д

    Грешка

Објашњење:

оутер() враћа унутрашњу функцију и фунц() је позива враћајући њен стринг.

Шта од следећег НИЈЕ карактеристика првокласних функција?

  • А

    Могу се доделити променљивим.

  • Б

    Могу се прослеђивати као аргументи другим функцијама.

  • Ц

    Могу се дефинисати само једном у програму.

  • Д

    Могу се вратити из других функција.

Објашњење:


Шта је излаз следећег кода?

деф маке_мултиплиер(н):

деф мултиплиер(к):

ретурн к * н

множитељ поврата

дупло = маке_мултиплиер(2)

штампа (двоструко (5))

  • А

    7

  • Б

    10

  • Ц

    25

  • Д

    Грешка

Објашњење:

маке_мултиплиер(2) враћа функцију која множи свој аргумент са 2. Дакле, доубле(5) враћа 10.



Како Питхон третира функције у односу на променљиве?

  • А

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

  • Б

    Функције су константе и не могу се поново доделити

  • Ц

    Функције су првокласни грађани и могу се ускладиштити, прослеђене и поново додељене

  • Д

    Функције морају бити декларисане као глобалне да би се користиле

Објашњење:

Бити грађани прве класе значи да се функцијама може додељивати прослеђена и враћена као и други објекти.

Функције прве класе у ПајтонуКвиз је успешно завршен Ваш резултат:   2 /8 тачност:  0% Пријавите се да бисте видели објашњење 1 /8 1 /8 < Previous Следећи >