키워드 인수(keyword arguments)는 함수 호출과 밀접한 관련이 있는 개념입니다. 함수를 호출할 때 키워드 인수를 사용하면 호출자가 매개변수(parameter)의 이름을 직접 지정하여 값을 전달할 수 있습니다.
이 방식의 가장 큰 장점은 인수의 순서를 자유롭게 바꿀 수 있다는 점입니다. 파이썬 인터프리터가 제공된 키워드를 기준으로 값과 매개변수를 자동으로 연결해 주기 때문입니다.
기본 예제
다음은 키워드 인수를 사용하여 함수를 호출하는 간단한 예제입니다.
#!/usr/bin/python3
# 함수 정의
def printme( str ):
"이 함수는 전달받은 문자열을 출력합니다"
print( str )
return;
# printme 함수를 키워드 인수로 호출
printme( str = "My string" )실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
My string
여기서는 printme() 함수를 호출할 때 인수를 그냥 값으로 넘기지 않고, str = "My string"처럼 매개변수 이름과 함께 전달했습니다. 이렇게 하면 코드의 의도가 더 명확해지고 가독성도 높아집니다.
인수 순서가 중요하지 않은 이유
다음 예제를 보면 개념이 더욱 명확해집니다. 핵심은 매개변수의 순서가 결과에 영향을 주지 않는다는 점입니다.
#!/usr/bin/python3
# 함수 정의
def printinfo( name, age ):
"이 함수는 전달받은 정보를 출력합니다"
print( "Name: ", name )
print( "Age: ", age )
return;
# 순서를 바꾸어 키워드 인수로 호출
printinfo( age=50, name="miki" )실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Name: miki Age: 50
함수 정의에서는 name이 먼저, age가 나중에 선언되어 있지만, 호출 시에는 age를 먼저 전달했습니다. 그럼에도 불구하고 각 값이 올바른 매개변수에 정확히 대입된 것을 확인할 수 있습니다.
키워드 인수의 장점 정리
- 가독성 향상: 어떤 값이 어떤 매개변수에 들어가는지 코드만 보고 바로 알 수 있습니다.
- 순서 자유: 인수 순서를 외울 필요 없이 원하는 순서대로 전달할 수 있습니다.
- 실수 방지: 여러 개의 인수를 다룰 때 값이 잘못된 매개변수에 들어가는 오류를 줄일 수 있습니다.