Keyworded variable length of arguments는 이름 그대로 keyword arguments 인데 그 수가 정해지지 않고 유동적으로 변할 수 있는 keyword arguments 입니다.
Keyworded variable length of arguments를 선언 하기 위해서는 parameter 이름앞에 두개의 별표 (**) 로 시작해야 합니다.
함수를 호출할때 일반적인 keyword arguments 처럼 사용하면 됩니다.
일반적인 keyword arugments와의 차이점:
- Argument 수를 0부터 N까지 유동적으로 넘겨줄 수 있습니다.
- Keyword가 미리 정해져 있지 않기때문에 원하는 keyword를 유동적으로 사용할 수 있습니다.
- Keyworded variable length of arguments는 dictionary 형태로 지정됩니다.
keyword 를 사용하지 않고 순서대로 값을 전달하는 방식도 가능
Variable arguments와 keyworded variable arguments 둘다 사용하여 함수를 정의할 수 도 있습니다.
def do_something(*args, **kwargs): ## some code here...
그렇다면 왜 둘다 사용할까요?
둘다 사용하면 어떠한 형태와 수의 argument도 허용 가능한 함수가 됩니다.
즉, parameter에 있어서 굉장히 유동적인 함수가 되는것입니다.
do_something(1, 2, 3, name="정우성", age=45) do_something(1, 2, 3, 4, 5, "hello", {"주소" : "서울", "국가" : "한국"}) do_something(name="정우성", gender="남", height="187") do_something(1) do_something()