def say_myself(name, old, man=True):
print("나의 이름은 %s 입니다." % name)
print("나이는 %d살입니다." % old)
if man:
print("남자입니다.")
else:
print("여자입니다.")
man=True 라는 defalt value를 설정할 수 있다.
say_myself("박응용", 27)
==>
나의 이름은 박응용입니다.
나이는 27살입니다.
남자입니다.
default value parameter는 non-default value parameter 앞에 정의하면 안 된다!
def say_myself(name, man=True, old):
print("나의 이름은 %s 입니다." % name)
print("나이는 %d살입니다." % old)
if man:
print("남자입니다.")
else:
print("여자입니다.")
위 코드에서
say_myself("박응용", 27)
함수를 실행하면
SyntaxError: non-default argument follows default argument 오류 발생.
파이썬 인터프리터는 27을 man 변수와 old 변수 중 어느 곳에 대입해야 할지 알 수 없게 되기 때문이다.
따라서 default value parameter는 항상 뒤쪽에 놓자.