[python] functools.partial()

alirz-pixel·2022년 9월 22일
0

python

목록 보기
3/5

partial 함수

functools.partial(func, /, *args, **keywords)

partial 함수는 호출 될 때, 위치 기반 인자 args와 키워드 인자 keywords로 호출 된 함수 func처럼 동작하는 새 partial 객체를 반환한다.

즉, partial 함수는 기존 함수에서 파라미터를 미리 지정한 또 다른 함수

사용

partial 함수 자체의 정의를 보면 *args 다음에 **keywords가 온다는 것에 주의할 필요가 있다.

즉, 코드로 보면 이러하다

from functools import partial

def foo(a, b, c):
	print(f"({a}, {b}, {c})")
   
# foo의 b 파라미터를 키워드 파라미터로 지정하였으니,
# 뒤에 올 c 파라미터는 꼭 키워드 파라미터로 사용해줘야 한다.
func = partial(foo, b = 10) 

func(1, 20)   # 에러
func(1, c=20) # 성공 (1, 10, 20)

# partial을 통해 b 파라미터를 미리 지정했지만,
# 사용시에 b 파라미터를 수정할 수 있음.
func(1, b=15, c=20)  # (1, 15, 20)

0개의 댓글