Функция като променлива в Python
В Python функцията по своята същност е променлива. И това означава, че тя също може да бъда предавана.
Нека имаме функция, която връща удивителен знак:
def func():
return '!'
Нека подадем на print името на функцията
без кръгли скоби като променлива:
print(func)
След изпълнение на кода в конзолата ще се изведе специален обект, съдържащ информация за тази функция:
<function func at 0x0000022816383E20>
Сега нека декларираме променлива func2,
в стойността на която ще предадем функцията func1.
Самата функция ще бъде предавана не по
стойност, а по референция като обект. И при
извикване на func2 с кръгли скоби в
конзолата ще се изведе резултатът от работата на func1:
def func1():
print('!')
func2 = func1
func2() # ще изведе '!'
Какъв ще бъде резултатът от изпълнението на следния код:
def func():
print('hello, user!')
greet = func
print(greet)
Какъв ще бъде резултатът от изпълнението на следния код:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))