PHpullh
학습 라이브러리/Python/순수 함수 설계

PYTHON · 함수형

순수 함수 설계

순수 함수(pure function)의 원칙과 Python에서 실천하는 방법입니다. 동일 입력에 항상 같은 출력을 보장합니다.

함수형중급pure function순수 함수함수형부작용

핵심 설명

순수 함수(pure function)의 원칙과 Python에서 실천하는 방법입니다. 동일 입력에 항상 같은 출력을 보장합니다.

Python code

# 비순수 함수 → 순수 함수 변환

# 비순수: 외부 상태에 의존
tax_rate = 0.1
def calc_tax_impure(price):
    return price * tax_rate  # 외부 변수 참조

# 순수: 모든 의존성을 인자로 전달
def calc_tax(price: float, rate: float) -> float:
    return price * rate

print(calc_tax(10000, 0.1))  # 1000.0

# 비순수: 리스트 변경
def add_item_impure(lst, item):
    lst.append(item)  # 원본 변경!
    return lst

# 순수: 새 리스트 반환
def add_item(lst: list, item) -> list:
    return [*lst, item]

original = [1, 2, 3]
new_list = add_item(original, 4)
print(original)   # [1, 2, 3] (변경 없음)
print(new_list)   # [1, 2, 3, 4]

# 순수 함수의 이점: 테스트 용이
def test_calc_tax():
    assert calc_tax(100, 0.1) == 10.0
    assert calc_tax(0, 0.1) == 0.0
    assert calc_tax(100, 0) == 0.0
    print("모든 테스트 통과!")

test_calc_tax()

학습 팁

순수 함수는 테스트, 캐싱(memoization), 병렬 실행이 쉽습니다. 가능한 한 순수 함수로 설계하세요.

주의할 점

mutable 기본 인자(def f(lst=[]))는 호출 간 상태를 공유합니다. None을 기본값으로 사용하세요.

자주 묻는 질문

순수 함수 설계란 무엇인가요?

순수 함수(pure function)의 원칙과 Python에서 실천하는 방법입니다. 동일 입력에 항상 같은 출력을 보장합니다.

순수 함수 설계 학습 시 주의할 점은 무엇인가요?

mutable 기본 인자( def f(lst=[]) )는 호출 간 상태를 공유합니다. None 을 기본값으로 사용하세요.

Continue Learning

Python 학습을 이어가세요

총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.