Book/파이썬 코딩의 기술

[BW 23] 키워드 인자로 선택적인 기능을 제공하라

31514 2024. 10. 23. 12:44

파이썬도 함수를 호출할 때 위치에 따라 인자를 넘길 수 있다.

def remainder(number, divisor):
    return nuber % divisor

remainder(20, 7)

 

키워드를 사용하면 순서는 관계없다.

remainder(divisor=7, number=20)

 

딕셔너리에 들어 있는 값을 함수에 전달할 수 있다.

my_kwargs = {
    'number': 20,
    'divisor': 7,
}

remainder(**my_kwargs)

 

아무 키워드 인자나 받는 함수를 만들고 싶다면, 모든 키워드 인자를 dict에 모아주는 **kwargs 파라미터를 사용한다.

def print_parameters(**kwargs):
    for key, value in kwargs.items():
        print(f'{key} = {value}')

print_parameters(key1=1, key2=2, key3=3)

>>>
key1 = 1
key2 = 2
key3 = 3

 

키워드 인자가 제공하는 세 가지 이점은 다음과 같다.

  1. 키워드 인자를 사용하면 코드를 처음 보는 사람들에게 함수 호출의 의미를 명확히 알려줄 수 있다.
  2. 키워드 인자의 경우 함수 정의에서 디폴트 값을 지정하여, 코드의 잡음을 줄일 수 있다.
  3. 어떤 함수를 사용하던 기존 호출자에게는 원시 기능을 제공하면서, 함수 파라미터를 확장할 수 있는 방법을 제공한다.