First Class Function
First Class Function 이란, 프로그래밍 언어가 함수를 first-class citizen으로 취급하는 것을 말한다.
함수를 first-class citizen으로 취급하면 함수를 변수에 할당하거나, 다른 함수의 인수로 전달될 수 있으며, 함수의 반환값으로도 사용할 수 있음을 의미한다.
이를 통해 함수를 조합해서 다양한 동작을 수행하는 함수를 작성할 수 있으며, 이러한 기능은 함수형 프로그래밍에서 매우 유용하다.
그리고 이러한 기능이 있기에 람다 함수를 활용해 더욱 간결한 코드를 작성할 수 있는 것이다.
파이썬에서의 First-class 함수 예시
1. 함수를 변수에 할당하기
def add(x, y):
return x + y
sum = add
print(sum(1, 2))
add 함수를 변수 sum에 할당하고 이 변수를 호출하여 함수를 실행한다.
2. 함수를 인자로 전달하기
def greeting(name):
return "Hello, " + name
def call_greeting(greeter, name):
return greeter(name)
print(call_greeting(greeting, "Finn"))
call_greeting 함수는 greeter 인자로 함수를 받아들이고 함수 name 인자와 함께 실행한다.
여담으로 이 예시의 경우 파이썬의 타입힌팅을 적용하면 좋은 예제로 생각된다.
def greeting(name: str) -> str:
return "Hello, " + name
def call_greeting(greeter: callable, name: str) -> str:
return greeter(name)
print(call_greeting(greeting, "Finn"))
3. 함수를 반환하기
def multiply(x):
def multiplier(y):
return x * y
return multiplier
double = multiply(2)
print(double(3))
multiply 함수는 multiplier 함수를 내부에서 정의하고, 이 함수를 반환한다.
즉, double 변수에는 multiplier 함수가 할당된 것이다. 이 변수를 호출하여 인자값으로 3을 넣는 double(3) 이 식은 multiplier(3)과 같다.
부족하거나 잘못된 내용이 있을 경우 댓글 달아주시면 감사하겠습니다.
이 글에 부족한 부분이 존재할 경우 추후에 수정될 수 있습니다.
'Python > Python' 카테고리의 다른 글
Python에서의 캡슐화 (0) | 2023.04.28 |
---|---|
Subtype in Python (0) | 2023.03.30 |
파이썬에서 Function과 method의 차이 (0) | 2023.03.20 |
Python 에서의 Lambda method (0) | 2023.02.22 |
참조에 의한 변수와 객체 연결 (0) | 2023.01.11 |