파이썬 함수의 가변인자, *args, **kwargs

가변 인자는 함수가 여러 개의 인자를 받을 수 있게 해줘서 유용하게 활용할 수 있습니다. 이번 포스팅에서는 이 가변 인자를 간단한 것부터 복잡한 것까지 차근차근 실습코드를 통해 연습해보겠습니다. 실습코드를 통해 가변인자에 대해 익숙해지는 것이 이번 포스팅의 목적입니다.

 

 


글의 순서

가변인자, *args, **kwargs
*args
키워드 가변인자 **kwargs
*args와 **kwargs 동시 사용


가변인자, *args, **kwargs

가변인자는 파이썬에서 함수를 정의할 때, 인자(arguments)의 갯수를 정하지 않고 가변적으로 사용할 수 있도록 선언하는 것입니다. 가변인자는 *args, **kwargs와 같이 2가지 방식으로 활용할 수 있습니다.


*args

*args는 함수에 여러 개의 인자를 전달할 때 사용합니다. 여기서 *은 임의의 개수의 인자를 받을 수 있게 해줍니다. 실습코드01에서 print_args 함수는 임의의 개수의 인자를 받아서 출력합니다.


키워드 가변인자 **kwargs

키워드의 kw, 가변인자의 args가 합성된 것이라고 생각하시면 됩니다. **kwargs는 키워드 인자를 여러 개 받을 때 사용합니다. 여기서 **은 딕셔너리 형태로 인자를 받을 수 있게 해줍니다. 실습코드 02에서 print_kwargs 함수는 키워드 인자를 딕셔너리 형태로 받아서 출력합니다.

키워드 인자로 받은 정보를 포맷팅해서 출력하는 함수를 작성해보겠습니다. 실습코드 03에서 보시는 바와 같이 포맷팅이란 문자열의 출력형식을 지정하는 것입니다. 예를 들어 문자열의 맨 첫 번째 문자를 대문자로 바꾼다거나, 모든 문자열을 대문자로 바꾸는 것, 또는 모든 문자열을 소문자로 바꾸는 것 등을 의미합니다. 실습코드 03에 각각의 경우를 나타내었습니다. key.capitalize, key.upper(), key.lower()가 각각 이들 포매팅 함수를 나타냅니다.


*args와 **kwargs 동시 사용

*args와 **kwargs를 함께 사용할 수도 있습니다. 이때는 순서에 주의해야 하는데, *args가 먼저 오고 **kwargs가 그 다음에 와야 합니다..


마치며 …

이번 포스팅에서는 이 가변 인자를 간단한 것부터 복잡한 것까지 차근차근 실습코드를 통해 연습해보았습니다. 파이썬 함수에서 *args, **kwargs라는 가변인자는 파이썬 함수의 유연성을 높일 수 있는 좋은 방법입니다. 유용하게 활용해 보시기 바랍니다.

 

 

함께 참고하면 좋은 글
파이썬 출력 (Python print) 함수 예제
파이썬 프로그래밍 시작 (10) 자료구조(Data Structure) : 딕셔너리
파이썬 프로그래밍 시작 (5) 연습문제 : 함수 만들기
파이썬 프로그래밍 시작 (3) 파이썬 함수 실습
호크아이 거래량 지표 (HawkEye Volume Indicator) 파이썬 코딩


참고자료

*args and **kwargs in Python

Leave a Comment