본문 바로가기
Python/Coding Base

9. 함수(function) 2 - 디폴트 인수, 키워드 인수

by Nanki 2022. 1. 23.

디폴트 인수(default argument)

로그인과 상관없이 ~님 안녕하세요 라는 문구를 출력하고자 하자. 이때 로그인을 하지 않은 사람들에게는 "일반유저님"이라는 주어를 붙이고자 한다. 이를 함수 입장에서 풀어보면, 주어에 해당하는 매개변수 user의 값에 따로 어떠한 값이 입력되지 않으면, '일반유저님'이라는 값이 대입되어야 된다는 의미다.

이때, 함수가 입력되지 않은 기본값을 가질 수 있도록 python은 지원을 하는데, 이것을 디폴트 인수(default argument)라 한다.

def hello(user="일반유저님", msg='반갑습니다.'):
    print("안녕하세요 ",user,msg)

hello()
  • 아래와 같은 결과를 반환한다. 
안녕하세요  일반유저님 반갑습니다.

 

  • 그렇다면, 특정 유저가 로그인하여 user매개변수에 그 유저 닉네임이 대입된다면? 아래와 같은 결과가 삽입 된다. 
hello('난키님')
# 반환 값 : 안녕하세요  난키님 반갑습니다.

 

키워드 인수(default argrument)

만약, 특정 유저에게만 보이는 "당첨되었습니다" 문구를 보이려면 어떻게 해야 할까? 그런데 하필이면 이 특정 유저가 로그인하지 않은 유저라 하자. 

hello("당첨되셨습니다")
# 반환 값 : 안녕하세요  당첨되셨습니다 반갑습니다.

hello 함수의 인자(매개변수)는 두 개(user, msg)이다. 그리고 대부분의 인수들은 함수 호출 시에 쉼표(,) 위치에 의해 구별된다. 여기서 "당첨되셨습니다"는 쉼표가 없지만 맨 처음 왔다. 따라서 이 인수는 user 매개변수에 대입된다.

이렇게 함수 호출시 쉼표에 따라 구별하지 않고 특정 매개변수에만 값을 대입하고 싶을 때 사용하는 인수가 키워드 인수이다. 이제 올바르게 값을 출력해 보자.

hellow(msg = "당첨되셨습니다")
# 반환 값 : 안녕하세요  일반유저님 당첨되셨습니다

참고로, 어떤 함수를 호출할 때 사용하는 인자의 값을 명확하게 지정해주는 것이 도움이 되므로, 함수 호출시 함수 인자를 입력하는 습관을 길러두자.