YUDA't

함수를 정의할 때, 우리가 얼마나 많은 인자들을 넣게될지 모를 경우, 파라미터 값으로 사용한다.

중요하고, 또 많이 쓰인다고는 하나 내가 직접 함수에 넣어본 적은 한번도 없다


*args

arguments. 키워드되지 않은 가변 개수의 인자들

def foo(*args): 
    for arg in args: 
        print(arg) 
 
foo(1, 2, 3, 4)


결과

1

2

3

4




**kwargs

keyword arguments. 키워드된 가변 개수의 인자들

def foo(num1, num2, **kwargs):


별표(*)는 중요하나 'args', 'kwargs' 같은 단어명은 중요하지 않다.

'vars', 'kwvars' 뭐 이렇게 해도 상관 없다는 거.

하지만 * 혹은 **는 반드시 붙여주어야 한다.

그래도 다른 사람이 보았을 때, 또는 유지보수를 위해 웬만하면 'args', 'kwargs'로 사용하자.




둘이 함께 있을 때 사용순서는 이렇다

foo(farg, *args, **kwargs)

형식인자(format arguments) > 가변인자(*args) > 키워드 가변인자(**kwargs) 순



내 취향은 아니지만 써버릇 해야겠다.