본문 바로가기
python

first_class function

by hyundy 2021. 10. 21.

first_class function 직역하면 1급 함수(?)인데 무슨말인지 알아보자

 

정의

함수 자체를 인자 (argument) 로써 다른 함수에 전달하거나 다른 함수의 결과값으로 리턴 할수도 있고, 함수를 변수에 할당하거나 데이터 구조안에 저장할 수 있는 함수를 뜻한다.

 

예제 코드로 살펴 보자

def square(x):
    return x * x

def my_map(func, arg_list):
    result = []
    for i in arg_list:
        result.append(func(i)) 
    return result

num_list = [1, 2, 3, 4, 5]

squares = my_map(square, num_list)

print(squares)

 - squares 변수에 my_map 함수 선언 하면서 인자로 square 함수와 num_list 를 넘겨 주었다. 

 - my_map 함수에서 square, num_list 각각 func, arg_list 인자로 받는다.

 - for문이 돌면서 리스트 값이 하나씩 들어오는데 이때 fucn(i) 즉 square 함수를 호출하고 return 값을 받아 result 리스트에 추가 한다.

 

결과

 

예제만 보면 square 함수 대신 result.append(i * i) 로 변경해도 같은 결과 값이 나온다.

하지만 여러 함수에서 square 함수 기능이 필요 하다면 재사용 할수 있기에 유용하다. 

 

'python' 카테고리의 다른 글

파이썬 메모리 관리  (0) 2021.10.29
*args, **kwargs  (0) 2021.10.21
Decorator  (0) 2021.10.21
Closure  (0) 2021.10.21
python package pandas  (0) 2021.10.08