python에서 함수 정의를 볼 때, **kwargs
를 종종 볼 수 있음
**kwargs
에서 kwargs는 keyword argument의 줄임말로 관례적으로 사용할 뿐, **keywords
처럼 다른 이름을 사용해도 됨
함수에서 이름이 지정된 가변 인자를 처리할 때 사용하며, dictionary
형태로 값을 전달함
**kwargs
사용하기def my_function(**kwargs):
result = []
# Iterating over the Python kwargs dictionary
for arg in kwargs.values():
result.append(arg)
return ' '.join(result)
print(my_function(a='Python', b='is', c='fun!')) # Python is fun!
**kwargs
사용하는 이유는?
- 유연성: 전달해야 할 인수의 수를 알 수 없을 때 또는 사용자가 선택적 인수를 지정하도록 허용하려는 경우 유용할 수 있습니다.
- 가독성: 위치 지정 대신 인수를 이름으로 지정하면 함수가 하는 일을 이해하기 쉬울 때가 많습니다.
- 코드 재사용: 유사한 키워드 인수가 필요한 여러 함수가 있다면 **kwargs를 사용하여 코드 중복을 피할 수 있습니다. 이렇게하면 코드를 더 모듈화하고 유지 보수하기 쉬워질 수 있습니다.
- 미래 대비성: 나중에 함수에 새로운 키워드 인수를 추가하더라도 **kwargs를 사용하는 코드는 새 인수가 기본값을 갖는 한 여전히 작동합니다.