BETTER WAY 19. 키워드 인수로 선택적인 동작을 제공하자
-
파이썬은 대부분의 다른 언어와 같이 함수를 호출할 때, 인수를 위치로 전달 할 수 있다.
-
파이썬에서는 위치 인수를 모두 키워드로 전달하는 것도 지원한다.
def reminder(number, divisor):
return number % divisor
reminder(20, 7)
reminder(20, divisor=7)
reminder(number=20, divisor=7)
reminder(divisor=20, number=7)
-
키워드 인수는 코드를 처음보는 사람이 함수 호출을 더 명확하게 이해할 수 있도록 도와준다.
-
키워드 인수는 함수를 정의할 때, 기본값을 설정할 수 있다. 이렇게 하면 반복적인 코드가 줄어들고, 코드가 깔끔해진다.
def flow_rate(weight_diff, time_diff, period=1):
return (weight_diff / time_diff) * period
flow_per_second = flow_rate(weight_diff, time_diff)
flow_per_hour = flow_rate(weight_diff, period=3600)
- 키워드 인수는 기존의 코드와 호환성을 유지하면서 함수의 파라미터를 확장할 수 있는 강력한 수단이 된다. 코드의 수정 없이 추가적인 기능을 제공할 수 있으며, 버그가 생길 가능성을 줄여준다.
핵심 정리
- 함수의 인수를 위치나 키워드로 저장할 수 있다.
- 위치 인수만으로는 이해하기 어려울 때, 키워드 인수를 사용하면, 각 인수를 사용하는 목적이 명확해진다.
- 키워드 인수에, 기본값을 지정하면, 함수에 새로운 동작을 쉽게 추가할 수 있다.
- 선택적인 키워드 인수는 항상 위치가 아닌 키워드로 넘겨야 한다.