[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으로 더 효율적이고 간결한 코드를 작성하는 데 도움이 될 것입니다.
참고 자료:
- PEP 3156 – Asynchronous IO Support Rebooted: the “asyncio” Module
- Fluent Python: Clear, Concise, and Effective Programming