일급 함수(First-class function)란 프로그래밍 언어에서 함수를 일반적인 값과 동일한 방식으로 취급하는 개념이다. 파이썬은 일급 함수를 지원하는 언어로, 함수를 변수에 할당하거나 함수를 다른 함수의 인자로 전달하거나 함수를 다른 함수의 반환값으로 사용할 수 있다. 파이썬은 함수를 자유롭게 조작하고 조합할 수 있는 강력한 기능을 제공한다.
1. 변수에 할당 가능
함수는 다른 변수에 할당하여 참조할 수 있다. 이를 통해 함수를 변수로서 사용하거나 다른 함수에 전달할 수 있다.
def say_hello():
print("Hello!")
my_function = say_hello # 함수 할당
my_function() # 함수 호출
# 출력 : Hello!
2. 함수의 인자로 전달 가능
함수는 다른 함수의 인자로 전달할 수 있다. 이를 통해 함수를 동적으로 전달하고 실행할 수 있다.
def greet(name, func):
print(f"{name}", func())
def say_hello():
return "Hello!"
greet("Minsu", say_hello) # 함수를 인자로 전달
# 출력 : Minsu Hello!
3. 함수의 반환값으로 사용 가능
함수는 다른 함수의 반환값으로 사용될 수 있다. 이를 통해 함수 안에서 새로운 함수를 동적으로 생성하고 반환할 수 있다.
def multiplier(factor):
def multiply(number):
return factor * number
return multiply
double = multiplier(2) # multiplier 함수의 반환값으로 multiply 함수를 받음
triple = multiplier(3) # multiplier 함수의 반환값으로 multiply 함수를 받음
result1 = double(5) # multiply 함수 호출
result2 = triple(5) # multiply 함수 호출
print(result1) # 출력: 10
print(result2) # 출력: 15
함수를 값으로 다룰 수 있기 때문에 함수를 추상화하고 재사용성을 높일 수 있으며, 고차 함수(Higher-order function)와 클로저(Closure)와 같은 개념과 함께 사용하면 파이썬에서 함수형 프로그래밍을 지원할 수 있다.
'Python' 카테고리의 다른 글
파이썬 (callable, partial) (0) | 2023.06.25 |
---|---|
파이썬 (map, filter, reduce, lambda) (0) | 2023.06.25 |
Python - 카카오맵 크롤링(with Selenium) (0) | 2021.07.26 |
Python - 홈페이지 탐색(with Selenium) (0) | 2021.07.23 |
Python - 시계열분석(TimeSeries) (0) | 2021.07.21 |