하나 이상의 인수가 이미 채워진 함수의 새로운 버전을 만들 때 사용하는 함수

예시

# 입력 인수의 합 혹은 곱을 리턴하는 함수
def add_mul(calculate, *args):
	if calculate == '+':
		result = 0
		for i in args:
			result += i
		
	if calculate == '*':
		result = 1
		for i in args:
			result *= i
	
return result

add_mul(’+’, 1, 2, 3, 4, 5) → return 15

add_mul(’*’, 1, 2, 3, 4, 5) → return 120

이러한 함수를 partial을 통해

add(1, 2, 3, 4, 5) → return 15

mul(1, 2, 3, 4, 5) → return 120

이렇게 변형시킬 수 있다

일반적인 함수로 변형시키는 경우

def add(*args):
    return add_mul('+', *args)

def mul(*args):
    return add_mul('*', *args)

partial 로 변형시키는 경우

from fuctools import partial

add = partial(add_mul, '+')
mul = partial(add_mul, '*')

이렇게 보면 맨위의 설명이 이해가 간다

하나의 인자가 이미 채워진 새로운 버전의 add_mul의 변형을 만들어낸 것!

이 이후로

만약 100부터 더하는 함수를 만들고싶다면

add = partial(add_mul, ‘+’, 100)

이렇게 한다면 add(1,2,3)은 100+1+2+3을 리턴하게 될 것이다