4.8.2 **kwargs 리스트
키워드 인수를 지원하는 조금 더 복잡한 문법은 함수 호출 시 인수에 이름을 지정하는 것이다. 예를 들어 다음 코드에서 print 함수를 호출할 때 end와 sep 인수에 이름을 지정했다.
print(10, 20, 30, end='.', sep=',')
조금 더 완벽한 함수 문법은 무명 인수와 명명 인수가 함께 존재하는 것이다.
def 함수_이름([일반_인수,] *args, **kwargs):
문장
심벌릭 이름 args와 마찬가지로 심벌릭 이름 kwargs는 사실 어떤 이름을 사용해도 상관없지만, 파이썬 프로그래머들은 관습상 kwargs를 사용하고 있다.
함수 정의 안에서 kwargs는 키-값 쌍으로 구성된 딕셔너리 형태의 인수를 의미한다. 문자열 키는 인수의 이름이 되며, 값은 인수로 전달된다.
예시를 통해 명확하게 확인해 보자. 다음과 같이 함수를 정의한다고 가정해 보자.
def pr_named_vals(**kwargs):
for k in kwargs:
print(k, ':', kwargs[k])