Funktion som variabel i Python
I Python är en funktion i grunden en variabel. Och det betyder att den också kan överföras.
Låt oss säga att vi har en funktion som returnerar ett utropstecken:
def func():
return '!'
Låt oss skicka namnet på funktionen
till print utan parenteser som en variabel:
print(func)
Efter att koden har körts kommer ett specialobjekt som innehåller information om denna funktion att skrivas ut i konsolen:
<function func at 0x0000022816383E20>
Låt oss nu deklarera en variabel func2,
vars värde vi tilldelar funktionen func1.
Själva funktionen kommer att överföras inte
värdemässigt, utan som en referens som ett objekt. Och när
func2 anropas med parenteser,
kommer resultatet av func1 att skrivas ut i konsolen:
def func1():
print('!')
func2 = func1
func2() # skriver ut '!'
Vad blir resultatet av följande kod:
def func():
print('hello, user!')
greet = func
print(greet)
Vad blir resultatet av följande kod:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))