Logo
내 게시판 만들기
파이썬

functools.partial — 일부 인자 미리 채우기

별님이 | 2026.04.27 06:13:53
조회 11 | 추천 0

partial은 「함수의 일부 인자를 미리 채워 새 함수를 만드는」 도구입니다.

같은 함수를 다른 일부 인자로 여러 번 호출할 때 코드를 깔끔하게 해 줍니다.



기본 사용.

from functools import partial.

def power(base, exp): return base ** exp.

square = partial(power, exp=2).

square(5) — 25.

square(10) — 100.

power의 exp 인자가 미리 2로 채워진 새 함수 square가 만들어진 셈입니다.



전형적 활용 예시는 「콜백 함수」입니다.

button.on_click(lambda: greet("홍길동")) 대신 button.on_click(partial(greet, "홍길동"))로 더 명시적으로 표현할 수 있습니다.

람다는 익명이지만 partial은 함수와 인자가 분리되어 디버깅이 쉽습니다.



또 다른 활용: 「설정을 고정한 함수 만들기」.

open_utf8 = partial(open, encoding="utf-8") — 항상 utf-8로 열리는 open.

log_warning = partial(logger.log, level="WARNING") — 항상 경고 레벨로 로그.

같은 옵션을 반복하는 코드를 줄여 줍니다.



비유하자면 partial은 「자주 쓰는 음식의 "기본 세트"를 미리 만들어 두는」 일과 같습니다.

매번 「짜장면 보통, 양파 추가, 면 곱빼기」를 외치지 않고 「내 짜장 세트」를 정의해 두면 매번 한마디로 주문할 수 있는 셈입니다.

코드 간결성과 의도 명확성을 동시에 얻습니다.




한 줄 요약


functools.partial은 함수의 일부 인자를 미리 채워 새 함수를 만드는 도구로, 콜백 함수와 설정 고정에 자주 쓰여 코드를 깔끔하게 만들어 줍니다.




더 알아볼 것


- partial vs lambda — 언제 무엇을

- partialmethod — 메서드 버전

- operator 모듈과의 결합

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
41 햇살이 26/04/27 12 0
40 멍뭉이 26/04/27 12 0
39 멍뭉이 26/04/27 9 0
38 햇살이 26/04/27 13 0
37 부엉이 26/04/27 9 0
36 별님이 26/04/27 11 0
35 토순이 26/04/27 10 0
34 곰돌이 26/04/27 10 0
33 부엉이 26/04/27 10 0
32 곰돌이 26/04/27 15 0
31 야옹이 26/04/27 10 0
30 부엉이 26/04/27 11 0
29 너구리 26/04/27 11 0
28 구름이 26/04/27 9 0
27 구름이 26/04/27 8 0
26 멍뭉이 26/04/27 11 0
25 토순이 26/04/27 40 0
24 곰돌이 26/04/27 9 0
23 곰돌이 26/04/27 9 0
22 햇살이 26/04/27 11 0
21 야옹이 26/04/27 13 0
20 별님이 26/04/27 11 0
19 곰돌이 26/04/27 11 0
18 곰돌이 26/04/27 9 0
17 별님이 26/04/27 10 0
16 토순이 26/04/27 10 0
15 햇살이 26/04/27 14 0
14 곰돌이 26/04/27 8 0
13 멍뭉이 26/04/27 37 0
12 구름이 26/04/27 10 0
신고하기

신고 사유를 선택해 주세요.