이 자습서에서는 Python 키워드 인수에 대해 배우고 이를 사용하여 함수 호출을 보다 명확하게 만드는 방법을 배웁니다.
1. Python 키워드 인수 소개
판매 가격과 할인에서 순 가격을 계산하는 간단한 함수부터 시작하겠습니다.
def get_net_price(price, discount):
return price * (1-discount)
get_net_price() 함수에는 가격과 할인이라는 두 가지 매개변수가 있습니다.
다음은 get_net_price() 함수를 호출하여 가격 100과 할인율 10%에서 정가를 계산하는 방법을 보여줍니다.
net_price = get_net_price(100, 0.1)
print(net_price)
Output:
90.0
get_net_price(100, 0.1) 함수 호출에서 각 인수를 위치 인수로 전달합니다.
즉, 가격 인수를 먼저 전달하고 할인 인수를 두 번째로 전달합니다.
그러나 함수 호출 get_net_price(100, 0.1)에는 가독성 문제가 있습니다.
해당 함수 호출만 보면 어떤 인수가 가격이고 어떤 인수가 할인인지 알 수 없기 때문입니다.
또한 get_net_price() 함수를 호출할 때 각 인수의 위치를 알아야 합니다.
그렇지 않으면 함수가 net_price를 잘못 계산합니다. 예를 들어:
net_price = get_net_price(0.1, 100)
print(net_price)
Output:
-9.9
가독성을 향상시키기 위해 Python은 키워드 인수를 도입합니다.
다음은 키워드 인수 구문을 보여줍니다.
fn(parameter1=value1,parameter2=value2)
키워드 인수 구문을 사용하면 함수에 정의된 것과 동일한 순서로 인수를 지정할 필요가 없습니다.
따라서 다음과 같이 인수 위치를 바꿔서 함수를 호출할 수 있습니다.
fn(parameter2=value2,parameter1=value1)
다음은 키워드 인수 구문을 사용하여 get_net_price() 함수를 호출하는 방법을 보여줍니다.
net_price = get_net_price(price=100, discount=0.1)
Or:
net_price = get_net_price(discount=0.1, price=100)
둘 다 동일한 결과를 반환합니다.
키워드 인수를 사용할 때 위치가 아니라 이름이 중요합니다.
위치 인수와 키워드 인수를 혼합하여 함수를 호출할 수 있습니다. 예를 들면 다음과 같습니다.
net_price = get_net_price(100, discount=0.1)
2. 키워드 인수 및 기본 매개변수
판매 가격, 세금 및 할인에서 정가를 계산하는 다음과 같은 get_net_price() 함수가 있다고 가정합니다.
def get_net_price(price, tax=0.07, discount=0.05):
return price * (1 + tax - discount)
get_net_price() 함수에서 세금 및 할인 매개변수의 기본값은 각각 7% 및 5%입니다.
다음은 get_net_price() 함수를 호출하고 세금 및 할인 매개변수에 기본값을 사용합니다.
net_price = get_net_price(100)
print(net_price)
Output:
102.0
할인이 아닌 세금 매개변수에 대한 기본값을 사용하려고 한다고 가정합니다. 다음 함수 호출이 제대로 작동하지 않습니다.
net_price = get_net_price(100, 0.06)
… Python은 할인이 아닌 가격에 100을 할당하고 세금에 0.1을 할당하기 때문입니다.
이 문제를 해결하려면 키워드 인수를 사용해야 합니다.
net_price = get_net_price(price=100, discount=0.06)
print(net_price)
Output:
101.0
또는 위치 인수와 키워드 인수를 혼합할 수 있습니다.
net_price = get_net_price(100, discount=0.06)
print(net_price)
Output:
101.0
3. Python 키워드 인수 요구 사항
키워드 인수를 사용한 후에는 나머지 매개변수에 대해 키워드 인수를 사용해야 합니다.
다음은 키워드 인수 뒤에 위치 인수를 사용하기 때문에 오류가 발생합니다.
net_price = get_net_price(100, tax=0.08, 0.06)
Error:
SyntaxError: positional argument follows keyword argument
4. Summary
- 특히 많은 인수를 허용하는 함수의 경우 Python 키워드 인수를 사용하여 함수 호출을 더 읽기 쉽고 명확하게 만드십시오.
- 첫 번째 키워드 인수 다음의 모든 인수도 키워드 인수여야 합니다.
refreance: https://www.pythontutorial.net/python-basics/python-keyword-arguments/
'Programing > Python' 카테고리의 다른 글
Python Lambda Expressions: 파이썬 람다 표현식 사용법 (0) | 2023.03.06 |
---|---|
Python Recursive Functions: 재귀 함수란 (0) | 2023.03.06 |
Python Default Parameters: 파이썬 기본 매개변수 (0) | 2023.03.06 |
Python Functions 사용하기 (0) | 2023.03.06 |
Python pass (0) | 2023.03.04 |
댓글