반응형
함수의 파라미터를 변수로 만들어주는 것 *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)
반응형