본문 바로가기

Application-level프로그래밍

[Python] How to use *args and **kwargs in Python

http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/


*args 를 함수의 파라미터로 둘 때는 keyword가 없는 인수들의 가변 리스트로 생각할 수 있다.

**kwargs를 함수의 파라미터로 둘 때는 keyword가 있는 인수들의 가변 리스트로 생각할 수 있다.


tuple이나 list를 이름 앞에 *를 붙여 인수로 함수에 전달하면 list의 사이즈 만큼의 변수들이 함수의 파라미터선언 순서대로 전달된 것으로 간주 된다.


dictionary를 **를 붙여 인수로 함수에 전달하면 역시 사이즈 만큼의 변수들이 전달되나. dictionary의 키를 파라미터의 이름으로 구별하여 전달한 효과를 얻을 수 있다.