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 |