본문 바로가기
파이썬/기초문법

Python First Class Function 일급 함수

by 행복론자 2020. 4. 9.

Python에서 함수는 일급 객체입니다.

 

함수가 일급객체로 취급 받는다는 의미는 다음과 같습니다.

 

1. 변수에 할당할 수 있다 

2. 매개변수로 전달할 수 있다.

3. 반환값으로 사용할 수 있다.

 

하나씩 살펴보겠습니다.

 

1. 함수를 다른 변수에 할당할 수 있다.

함수를 정의하면 다음과 같이 사용합니다.

def say_hello(name):
    print('Hi ' + name)


say_hello('Python3')

 

 

그런데 say_hello는 함수이자 객체이므로 다른 변수에 할당하여 사용할 수 있습니다.

def say_hello(name):
    print('Hi ' + name)

say_something = say_hello
say_something('Python3')

 

 

2. 함수를 매개변수로써 사용할 수 있다.

def add_num(a, b):
    return a+b


def calculator(func, a, b):
    result = func(a, b)
    print(result)


calculator(add_num, 3, 5)

 

 

함수 add_num을 calculator의 인자로 전달하여 calculator 내부에서 사용할 수 있습니다. 

 

 

3. 함수를 리턴값으로 사용할 수 있다.

def create_adder(x):
    def adder(y):
        return x + y
    return adder

add_10 = create_adder(10)
result = add_10(5)

print(result) # 15 

 

 

adder라는 함수를 반환하는 create_adder 함수를 만들었습니다.

이후 add_10이라는 변수를 두고 created_adder의 리턴값을 참조하게 만들면 

add_10은 create_adder 내부에 adder 함수를 참조하고 있고

add_10(5)과 같이 호출하여 사용할 수 있습니다.

 

이 과정에서 초기 create_adder에서 받은 10을 들고 있어 add_10(5)의 결과가 15로 나오게 됩니다.

반응형
이 포스팅은 쿠팡파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글