[python] 함수의 일급 객체 특성

Python은 함수를 일급 객체로 다루는 언어입니다. 함수를 다른 데이터 유형과 마찬가지로 변수에 할당하거나, 다른 함수의 인자로 전달하거나, 함수의 반환 값으로 사용할 수 있습니다. 이 기능은 함수형 프로그래밍 스타일을 지원하고, 코드의 유연성과 모듈성을 높여줍니다.

함수를 변수에 할당하기

함수를 변수에 할당할 수 있습니다. 이를 통해 함수 이름을 다른 이름으로 사용하거나, 함수를 쉽게 전달하거나 반환값으로 사용할 수 있습니다.

def greet(name):
    return f"Hello, {name}!"

say_hello = greet
print(say_hello("John"))  # 출력: Hello, John!

함수를 다른 함수의 인자로 전달하기

Python에서는 함수를 다른 함수의 인자로 전달할 수 있습니다. 이를 활용하면 콜백 함수나 데코레이터 등을 구현할 수 있습니다.

def apply_operation(func, x, y):
    return func(x, y)

def add(a, b):
    return a + b

result = apply_operation(add, 5, 3)
print(result)  # 출력: 8

함수를 다른 함수의 반환 값으로 사용하기

또한 함수가 다른 함수의 반환 값으로 사용될 수 있습니다. 이를 통해 함수를 동적으로 생성하거나, 구성할 수 있습니다.

def create_printer():
    def printer(message):
        print(message)
    return printer

my_printer = create_printer()
my_printer("Hello, world!")  # 출력: Hello, world!

Python의 함수의 일급 객체 특성은 함수형 프로그래밍과 다양한 디자인 패턴을 적용하여 코드를 보다 모듈화하고 유연하게 만드는데 도움이 됩니다. 함수형 프로그래밍을 익히면서 이러한 특성을 잘 활용하는 것은 Python으로 더 효율적이고 간결한 코드를 작성하는 데 도움이 될 것입니다.

참고 자료: