파이썬에서 변수로서의 함수
파이썬에서 함수는 본질적으로 변수입니다. 이는 함수 역시 전달될 수 있음을 의미합니다.
느낌표를 반환하는 함수가 있다고 가정해 보겠습니다:
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))