반응형
📌 default 인수와 keyword 인수 정리 (Python)
✅ 1. default 인수 (기본값 인수)
정의:
- 함수에서 특정 인수의 값을 전달하지 않아도 기본값을 사용하도록 설정하는 방식.
- 함수 정의 시 인수에 기본값을 설정하여 사용.
- 오른쪽부터 왼쪽 방향으로 기본값을 부여해야 함. (즉, 기본값이 있는 인수 뒤에 기본값이 없는 인수가 올 수 없음.)
📌 예제
def greet(name="친구"):
print(f"안녕하세요, {name}님!")
greet() # 출력: 안녕하세요, 친구님! (기본값 사용)
greet("철수") # 출력: 안녕하세요, 철수님! (전달한 인수 사용)
✅ default 인수 규칙
- 오른쪽부터 기본값을 부여해야 함.
- 아래와 같이 기본값이 없는 인수 뒤에 기본값이 있는 인수를 배치해야 함.
# 올바른 예시
def info(name, age=20):
print(f"이름: {name}, 나이: {age}")
info("영희") # 출력: 이름: 영희, 나이: 20 (기본값 사용)
info("철수", 25) # 출력: 이름: 철수, 나이: 25 (입력한 값 사용)
# 오류 발생 예시 (기본값이 없는 인수가 뒤에 있음)
# def wrong_example(age=20, name):
# print(f"이름: {name}, 나이: {age}")
# SyntaxError: non-default argument follows default argument
➡️ 기본값을 갖는 인수는 항상 뒤쪽에 배치해야 함!
✅ 2. keyword 인수 (키워드 인수)
정의:
- 함수 호출 시
인수이름 = 값
형식으로 인수를 전달하는 방식. - 함수 정의 시의 인수 순서와 관계없이 키워드 방식으로 지정 가능.
📌 예제
def introduce(name, age, city):
print(f"이름: {name}, 나이: {age}, 사는 곳: {city}")
introduce(name="지훈", age=25, city="서울")
# 출력: 이름: 지훈, 나이: 25, 사는 곳: 서울
introduce(city="부산", age=30, name="영수")
# 출력: 이름: 영수, 나이: 30, 사는 곳: 부산 (순서 무관)
➡️ 키워드 인수를 사용하면 순서를 변경해도 올바르게 매칭됨!
✅ 3. default 인수와 keyword 인수 함께 사용하기
두 개의 개념을 조합하면 더욱 유연한 함수 호출이 가능합니다.
📌 예제
def order(food, drink="물", dessert="아이스크림"):
print(f"음식: {food}, 음료: {drink}, 디저트: {dessert}")
order("피자")
# 출력: 음식: 피자, 음료: 물, 디저트: 아이스크림 (기본값 사용)
order("햄버거", "콜라")
# 출력: 음식: 햄버거, 음료: 콜라, 디저트: 아이스크림 (음료만 변경)
order("스테이크", dessert="케이크")
# 출력: 음식: 스테이크, 음료: 물, 디저트: 케이크 (음료는 기본값 유지, 디저트만 변경)
➡️ 기본값과 키워드 인수를 활용하면 다양한 방법으로 함수 호출 가능!
🎯 정리
구분 | default 인수 | keyword 인수 |
---|---|---|
개념 | 인수가 전달되지 않으면 기본값을 사용 | 인수이름=값 형식으로 지정 |
사용 위치 | 함수 정의 시 | 함수 호출 시 |
순서 고려 | 기본값이 있는 인수는 오른쪽에 위치해야 함 | 함수 정의 순서와 관계없이 사용 가능 |
예제 | def greet(name="친구"): |
introduce(name="철수", age=30) |
💡 default 인수는 기본값을 지정할 때, keyword 인수는 유연한 함수 호출을 위해 사용하면 좋습니다! 🚀
'십대를 위한 코딩 > 십대를 위한 파이썬' 카테고리의 다른 글
[파이썬] 클래스와 객체(Class & Object) (1) | 2025.02.11 |
---|---|
[파이썬] range() 함수 (0) | 2025.02.10 |
[파이썬] 매개변수와 전달인자의 차이 (1) | 2025.02.06 |
[파이썬] 함수의 유형 (2) | 2025.02.05 |
키워드와 예약어 (0) | 2025.02.03 |