본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter30. 고차 함수와 partial 함수

by about_IT 2025. 5. 23.
728x90

파이썬은 함수형 프로그래밍 스타일도 지원하며, 함수를 인자로 받거나 함수를 반환하는 고차 함수(Higher-order Function)를 쉽게 작성할 수 있습니다. functools.partial을 이용하면 인자의 일부를 고정한 새로운 함수를 만들어 코드 재사용성을 높일 수 있습니다.


● 고차 함수란?

고차 함수는 다른 함수를 인자로 받거나, 함수를 반환하는 함수입니다. map(), filter(), sorted() 등도 대표적인 고차 함수입니다.

def apply_func(f, value):
    return f(value)

print(apply_func(len, "Python"))  # 6

이와 같이 함수를 인자로 전달할 수 있어 유연한 처리 방식이 가능합니다.


● 함수 반환하는 고차 함수

def make_multiplier(factor):
    def multiply(n):
        return n * factor
    return multiply

times2 = make_multiplier(2)
print(times2(5))  # 10

이 방식은 클로저(closure)를 활용하여 동적으로 함수 동작을 정의할 수 있습니다.


● functools.partial 함수

partial 함수는 기존 함수의 인자 일부를 고정시켜 새로운 함수를 생성합니다.

from functools import partial

def power(base, exponent):
    return base ** exponent

square = partial(power, exponent=2)
print(square(5))  # 25

이는 콜백 함수나 반복 작업에서 기본 인자를 고정할 때 유용하게 활용됩니다.


● sorted의 key로 활용

data = ["apple", "banana", "cherry"]
sorted_data = sorted(data, key=len)
print(sorted_data)  # ['apple', 'banana', 'cherry']

key 인자에 함수를 전달함으로써 다양한 정렬 기준을 적용할 수 있습니다.


● 마무리

고차 함수와 partial 함수는 코드를 더 간결하고 재사용 가능하게 만들어줍니다. 특히 함수형 스타일의 프로그래밍에 익숙해지면, 많은 반복 작업과 로직 제어를 더 깔끔하게 구현할 수 있습니다.

728x90