PYTHON · 함수
함수 체이닝
여러 함수를 순차적으로 연결하여 데이터 변환 파이프라인을 구성합니다.
함수중급chaining체이닝pipeline함수형
핵심 설명
여러 함수를 순차적으로 연결하여 데이터 변환 파이프라인을 구성합니다.
Python code
from typing import Callable, TypeVar
T = TypeVar("T")
class Chain:
"""함수 체이닝을 위한 래퍼"""
def __init__(self, value):
self._value = value
def then(self, func: Callable) -> "Chain":
return Chain(func(self._value))
@property
def value(self):
return self._value
# 체이닝 사용
result = (
Chain(" Hello, World! ")
.then(str.strip)
.then(str.lower)
.then(lambda s: s.replace("world", "python"))
.then(str.title)
.value
)
print(result) # Hello, Python!
# 리스트 데이터 파이프라인
data = Chain([3, 1, 4, 1, 5, 9, 2, 6])
result = (
data
.then(sorted)
.then(lambda lst: [x for x in lst if x > 2])
.then(lambda lst: [x ** 2 for x in lst])
.value
)
print(result) # [9, 16, 25, 36, 81]학습 팁
함수 체이닝은 데이터 변환 파이프라인을 읽기 쉽게 만들어줍니다.
주의할 점
체이닝 중 하나의 함수가 None을 반환하면 다음 체인에서 오류가 발생합니다. 각 함수가 값을 반환하는지 확인하세요.
자주 묻는 질문
함수 체이닝란 무엇인가요?
여러 함수를 순차적으로 연결하여 데이터 변환 파이프라인을 구성합니다.
함수 체이닝 학습 시 주의할 점은 무엇인가요?
체이닝 중 하나의 함수가 None 을 반환하면 다음 체인에서 오류가 발생합니다. 각 함수가 값을 반환하는지 확인하세요.