def info(name,age,address):
print("이름 : {0}, 나이: {1}, 주소: {2}".format(name,age,address))
info("영희",20,"서울")
info("철수",21,"부산")
위 코드는 함수를 이용하여 간단한 인적사항을 출력하는 함수를 만들어 보았다.
실행결과
이름 : 영희, 나이: 20, 주소: 서울
이름 : 철수, 나이: 21, 주소: 부산
그런데 만약에 영희와 철수가 같은 나이에 같은 지역에 살고 있다면 생략할 수 있을 것이다.
영희와 철수가 20살에 사는 지역도 서울로 같다고 했을 때 함수를 재정의 해보았다.
def info(name,age=20,address="서울"):
print("이름 : {0}, 나이: {1}, 주소: {2}".format(name,age,address))
info("영희")
info("철수")
실행결과
이름 : 영희, 나이: 20, 주소: 서울
이름 : 철수, 나이: 21, 주소: 부산
함수의 전달값 부분을 정의할 때 처음부터 값을 지정해두는 것을 기본값이라고 한다.
이렇게 기본값을 넣어두면 일일이 전달값을 적지 않아도 더욱 간편하게 함수를 호출할 수 있다.
함수를 정의할 때 기본값과 전달값이 같이 있는 경우에 반드시 전달값을 먼저 적어야 한다.
def call(name,number="010-1234-1234"):
print("{0}번을 누를시 {1}님께 연결됩니다.".format(number,name))
call("홍길동")
⬆ 올바른 작성법
실행결과
010-1234-1234번을 누를시 홍길동님께 연결됩니다.
def call(number="010-1234-1234",name):
print("{0}번을 누를시 {1}님께 연결됩니다.".format(number,name))
call("홍길동")
⬆ 잘못된 작성법
실행결과
SyntaxError: non-default argument follows default argument
이렇게 기본값을 먼저 넣는 경우에는 에러가 발생한다!