본문 바로가기
Programing/Python

Python Keyword Arguments: 키워드 인수 소개

by 멍멍돌이야 2023. 3. 6.
반응형

이 자습서에서는 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/

 

 

 

 

 

 

728x90
반응형

댓글