더북(TheBook)

4.8.2 **kwargs 리스트

키워드 인수를 지원하는 조금 더 복잡한 문법은 함수 호출 시 인수에 이름을 지정하는 것이다. 예를 들어 다음 코드에서 print 함수를 호출할 때 endsep 인수에 이름을 지정했다.

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])
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.