더북(TheBook)

원하는 키워드 모으기 인자를 호출할 수 있지만, 일반적으로는 kwargs를 선택한다. 결과는 키워드를 값에 매핑한 사전이 된다.

>>> printall(1, 2.0, third='3')

(1, 2.0) {'third': '3'}

키워드와 값으로 구성된 사전을 갖고 있다면 확산(scatter) 연산자 **를 사용해 함수를 호출할 수 있다.

>>> d = dict(x=1, y=2)

>>> Point(**d)

Point(x=1, y=2)

확산 연산자가 없다면 이 함수는 d를 위치 인수 하나로 처리했을 것이다. 즉, dx에 할당하고,
y에 대한 할당이 없다는 오류를 표시했을 것이다.

>>> d = dict(x=1, y=2)

>>> Point(d)

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: _ _new_ _() missing 1 required positional argument: 'y'

인자가 매우 많은 함수를 사용한다면 자주 사용하는 옵션을 지정한 사전을 생성해서 전달하는 방법이 종종 유용하게 쓰인다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.