게시글 삭제
정말 삭제하시겠습니까?
1분 파이썬 - (40) 기본값
[주요 목차]
기본값의 개념
기본값의 활용 사례
기본값 활용 시 주의사항
프로그래밍을 하다 보면 함수에서 기본값을 설정할 필요가 자주 생겨요. 특히 여러 인자를 받아야 하는 함수일수록 기본값이 있으면 코드가 훨씬 간편해지죠. 예를 들어, 미용실에서 일반 손님과 VIP 손님의 가격을 다르게 설정한다고 해볼게요. 일반 손님에게는 15,000원을 받고, VIP 손님에게는 10,000원을 받는다고 하면, 매번 가격을 입력하는 것이 번거로울 수 있어요. 이럴 때 기본값을 활용하면 훨씬 효율적으로 코드를 작성할 수 있습니다. 이번 글에서는 파이썬에서 기본값이 무엇인지, 어떻게 활용할 수 있는지, 그리고 주의해야 할 점들을 정리해볼게요. 기본값을 잘 활용하면 코드의 가독성과 효율성을 높일 수 있답니다.
1분 파이썬 - (40) 기본값 · 주요 포인트 1
기본값의 개념
기본값은 함수의 인자에 미리 설정해 놓은 값이에요. 함수가 호출될 때 인자를 전달하지 않으면 이 기본값이 사용되죠. 예를 들어, 파이썬에서 기본값을 설정하는 방법은 이렇게 간단해요:
python
def haircut(price=15000):
return price
이 함수는 기본적으로 15,000원을 가격으로 설정하고 있어요. 만약 사용자가 다른 가격을 입력하지 않으면, 함수는 15,000원을 반환하게 돼요. 이렇게 기본값을 설정해두면, 매번 가격을 입력하지 않아도 기본값이 자동으로 사용되니 편리하죠.
기본값의 가장 큰 장점은 코드의 간결함이에요. 여러 인자를 받는 함수에서 기본값이 설정되어 있으면, 호출할 때 필요한 인자만 입력하면 되고, 나머지는 기본값으로 자동 처리됩니다. 이로 인해 코드가 더 깔끔해지고, 유지보수도 쉬워지죠.
1분 파이썬 - (40) 기본값 · 핵심 장면 2
기본값의 활용 사례
실제로 기본값은 다양한 분야에서 유용하게 사용될 수 있어요. 예를 들어, 미용실을 운영하는 경우를 생각해보죠. 일반 손님에게는 기본적으로 15,000원을 받고, VIP 손님에게는 10,000원을 받는다고 가정해볼게요.
python
def haircut(customer_type="regular"):
if customer_type == "vip":
return 10000
return 15000
이 함수는 고객의 유형에 따라 가격을 다르게 설정해줘요. 하지만 만약 일반 손님이 많고, VIP 손님은 드물다면, 매번 'regular'를 입력하기 보다는 기본값으로 설정해두면 훨씬 편리하겠죠. 다음과 같이 기본값을 설정해볼 수 있어요:
```python def haircut(customer_type="regular"): if customer_type == "vip": return 10000 return 15000
일반 손님
print(haircut()) # 자동으로 15000원이 출력됨
VIP 손님
print(haircut("vip")) # 10000원이 출력됨 ```
이렇게 하면 일반 손님일 경우에는 함수 호출 시 아무것도 입력하지 않아도 되고, VIP 손님일 때만 필요한 정보를 입력하면 되죠.
1분 파이썬 - (40) 기본값 · 본문 이미지 3
기본값 활용 시 주의사항
기본값을 설정할 때 몇 가지 주의할 점이 있어요. 첫째, 기본값은 함수 정의 시점에 한 번만 계산된다는 거예요. 즉, 리스트나 딕셔너리 같은 가변 객체를 기본값으로 설정하면, 모든 함수 호출에서 동일한 객체를 참조하게 됩니다. 예를 들어, 다음과 같은 코드가 있다고 해볼게요:
python
def add_to_list(value, my_list=[]):
my_list.append(value)
return my_list
이 함수를 여러 번 호출하면, 기본값으로 설정된 리스트가 계속해서 누적되죠. 그래서 다음과 같이 출력될 수 있어요:
python
print(add_to_list(1)) # [1]
print(add_to_list(2)) # [1, 2]
print(add_to_list(3)) # [1, 2, 3]
이런 현상을 피하려면 기본값으로 가변 객체를 사용하지 않는 것이 좋아요. 대신, 기본값을 None으로 설정하고, 함수 내부에서 새로운 객체를 생성하는 방법이 안전합니다:
python
def add_to_list(value, my_list=None):
if my_list is None:
my_list = []
my_list.append(value)
return my_list
이렇게 하면 각 함수 호출마다 새로운 리스트가 생성되므로 문제가 발생하지 않아요.
[자주 묻는 질문]
파이썬에서 기본값을 설정하는 방법은?
파이썬에서 기본값은 함수 정의 시 인자 뒤에 `=` 기호를 사용하여 설정할 수 있어요. 예를 들어, `def function_name(param=default_value):` 형식으로 정의하면, 함수 호출 시 해당 파라미터를 생략할 경우 기본값이 사용됩니다.
기본값을 사용할 때 어떤 점을 주의해야 하나요?
기본값으로 가변 객체(리스트, 딕셔너리 등)를 사용하면, 모든 호출에서 같은 객체가 공유되므로 예상치 못한 결과가 발생할 수 있어요. 이를 피하려면 기본값을 None으로 설정하고, 함수 내부에서 새로운 객체를 생성하는 방법이 안전합니다.
기본값이 유용한 경우는 어떤 게 있나요?
기본값은 특히 여러 인자를 받는 함수에서 유용해요. 자주 사용되는 값이나 설정을 기본값으로 지정하면, 함수 호출 시 불필요한 입력을 줄일 수 있어 코드가 간결해지고 가독성이 높아지죠. 예를 들어, 미용실에서 손님의 유형에 따라 가격을 다르게 설정할 때 유용하게 활용할 수 있습니다.