프로그래밍 문법/python

함수 파라미터를 변수로 묶어서 넣기 (*args, **kwargs)

씩씩한 IT블로그 2022. 1. 10. 19:40
반응형

함수의 파라미터를 변수로 만들어주는 것 *args, **kwargs

함수의 파라미터 값이 매우 많은 경우가 있다.

(catboost의 예)

이 경우 함수의 파라미터값을 줄줄 써주어야 하는 불편함이 있다.

이를 방지하기 위해 변수에 함수 파라미터를 넣고, 해당 변수만 함수의 input값으로 주면 코드를 깔끔하게 할 수 있다.

이를 가능하게 해주는 것이 *args와 **kwargs이다.

먼저 파라미터 a,b,c가 있는 다음과 같은 함수가 있다.

def func(a,b,c):
    print("a : ",a)
    print("b : ",b)
    print("c : ",c)

이를 *args와 **kwargs

 

*args

파라미터들을 튜플형태로 묶어준다.

파라미터 순서에 맞게 튜플 값들의 순서를 맞춰주어야 한다.

input_a=1
input_b=2
input_c=3
args = (input_a,input_b,input_c)

func(*args)

 

*kwargs

파라미터들을 딕셔너리 형태로 묶어준다.

key가 함수를 정의할 때 사용했던 파라미터(string 타입으로 해야함)

value가 해당 파라미터의 input값이 된다.

kwargs={"a":1,"b":2,"c":3}
func(**kwargs)

반응형