십대를 위한 코딩/십대를 위한 파이썬

[파이썬] default 인수와 keyword 인수 정리

forSilver 2025. 2. 7. 00:05
반응형

📌 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 인수는 유연한 함수 호출을 위해 사용하면 좋습니다! 🚀