Функције прве класе у Пајтону
У Питхон-у функције се третирају као првокласни објекти. То значи да се могу користити као низови бројева или било која друга променљива. можете:
- Додели функције променљивим.
- Проследите их као аргументе другим функцијама.
- Вратите их из функција.
- Чувајте их у структурама података као што су листе или речници.
Ова способност вам омогућава да пишете модуларан и моћан код за вишекратну употребу.
Карактеристике првокласних функција
Функције у Питхон-у имају следеће важне карактеристике. Погледајмо их један по један са примерима:
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
Објашњење:
- Функције сабирања и одузимања се чувају у речнику.
- Њима се приступа помоћу њихових кључева и директно се извршавају.
Шта од следећег најбоље описује првокласну функцију у програмским језицима?
- А
Функција која се може позвати само из свог делокруга.
- Б
Функција која се може доделити променљивим које се прослеђују као аргументи и враћају из других функција као било који други објекат.
- Ц
Функција која се може дефинисати само на највишем нивоу модула.
- Д
Функција која се може извршити само у одређеном контексту.
Шта је функција вишег реда у контексту првокласних функција?
- А
Функција која може да врати само примитивне типове података.
- Б
Функција која може узети друге функције као аргументе или их вратити као резултате.
- Ц
Функција која је дефинисана унутар друге функције, али се не може вратити.
- Д
Функција која се извршава у посебној нити.
Шта ће бити резултат следећег кода?
деф поздрав (име):
ретурн ф'Здраво {наме}'
саи_хелло = поздрави
принт(саи_хелло('Штребер'))
- А
Здраво поздрав
- Б
поздравити
- Ц
Здраво Геек
- Д
ТипеЕррор
Функције се могу доделити променљивим. Овде саи_хелло постаје још једна референца за поздрав.
Шта од следећег није својство првокласних функција?
- А
Функције се могу чувати у структурама података
- Б
Функције се могу доделити променљивим
- Ц
Функције могу вратити друге функције
- Д
Функције могу да враћају само примитивне типове
Првокласне функције могу да врате било који тип укључујући и друге функције – не ограничавајући се на примитиве.
Шта ће бити резултат овог кода?
деф оутер():
деф иннер():
врати 'Унутрашња функција'
вратити унутрашњи
фунц = спољни()
принт(фунц())
- А
Унутрашња функција
- Б
унутрашњег
- Ц
спољашњи
- Д
Грешка
оутер() враћа унутрашњу функцију и фунц() је позива враћајући њен стринг.
Шта од следећег НИЈЕ карактеристика првокласних функција?
- А
Могу се доделити променљивим.
- Б
Могу се прослеђивати као аргументи другим функцијама.
- Ц
Могу се дефинисати само једном у програму.
- Д
Могу се вратити из других функција.
Шта је излаз следећег кода?
деф маке_мултиплиер(н):
деф мултиплиер(к):
ретурн к * н
множитељ поврата
дупло = маке_мултиплиер(2)
штампа (двоструко (5))
- А
7
- Б
10
- Ц
25
- Д
Грешка
маке_мултиплиер(2) враћа функцију која множи свој аргумент са 2. Дакле, доубле(5) враћа 10.
Како Питхон третира функције у односу на променљиве?
- А
Функције су статични објекти
- Б
Функције су константе и не могу се поново доделити
- Ц
Функције су првокласни грађани и могу се ускладиштити, прослеђене и поново додељене
- Д
Функције морају бити декларисане као глобалне да би се користиле
Бити грађани прве класе значи да се функцијама може додељивати прослеђена и враћена као и други објекти.
Квиз је успешно завршен Ваш резултат: 2 /8 тачност: 0% Пријавите се да бисте видели објашњење 1 /8 1 /8 < Previous Следећи >