이런 변경은 dict 타입과 이 타입의 특정 구현에 의존하는 여러 다른 파이썬 기능에 수많은 영향을 끼쳤다.
**kwargs로 모든 인자를 얻는 경우를 포함해 함수에 대한 키워드 인자(아이템 35 “키워드 인자로 선택적인 기능을 제공하라”와 아이템 37 “위치로만 인자를 지정하거나 키워드로만 인자를 지정하게 해서 함수 호출을 명확하게 만들라” 참조)도 dict로 전달되기 때문에, 파이썬 3.5나 그 이전 버전에서는 순서가 뒤죽박죽인 것처럼 보였고, 그로 인해 함수 호출을 디버깅하기가 힘들었다.
# 파이썬 3.5
def my_func(**kwargs):
for key, value in kwargs.items():
print("%s = %s" % (key, value))
my_func(goose="gosling", kangaroo="joey")
>>>
kangaroo = joey
goose = gosling