PHpullh

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 을 반환하면 다음 체인에서 오류가 발생합니다. 각 함수가 값을 반환하는지 확인하세요.