본문 바로가기
프로그래밍/Python

파이썬(Python) 함수에 부분 인자 적용하기 (feat. partial)

by 부자 꽁냥이 2022. 7. 15.

파이썬 코딩을 하다 보면 함수에 모든 인자가 아닌 특정 부분 인자만 고정시키고 다른 인자에는 for loop를 돌면서 동적으로 할당하고 싶을 때가 있다. 파이썬에서는 functools 모듈의 partial을 이용하면 이 모든 것이 가능하다.

 

따라서 이번 포스팅에서는 functools 모듈의 partial의 사용법과 예제를 알아보자.


   1. partial 사용법

partial은 첫번째 인자로 함수를 넣어주고 뒤이어 해당 함수의 인자값을 정해주는 방식이다.


partial( '함수', '인자1', '인자2', . . . )



   2. partial 예제

사용법을 알았으니 실제로 써보자. 다음 코드는 a, b, c, d 인자를 갖는 함수 func에서 a, b인자를 먼저 고정시켜놓고 나머지 c, d 인자에 대한 함수 g를 만들어낸다.

from functools import partial

def func(a, b, c, d):
    return 1000*a+100*b+10*c+d

g = partial(func, a=4, b=3) ## func 함수의 a, b인자 고정
print(g(c=2, d=1))

 

이것만 보면 대단하지 않을 수 있어서 for loop를 이용하여 partial에 위대함을 몸소 느껴보자.

def func(a, b, c, d):
    return 1000*a+100*b+10*c+d

g = partial(func, a=4, b=3) ## func 함수의 a, b인자 고정

for c, d in zip(range(10), range(10)):
    print(g(c=c, d=d))


댓글


맨 위로