Функция как переменная в 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))