default value parameter를 non-default value parameter 앞에 정의하면 안되는 이유에 대해 알아보겠습니다.
Default 값이 정의된 parameter
는 함수가 호출될 때 값을 입력하지 않게되면 default 값이 자동으로 넘겨지게 됩니다.
def hello(name, age, home):
print(f"My name is {name}. I'm {age} years old. I live in {home}")
매개 변수를 순서를 바꿔도 error가 발생하지 않습니다.
def hello(name, age, home="seoul"):
print(f"My name is {name}. I'm {age} years old. I live in {home}")
역시 error 없이 잘 작동합니다.
def hello(name="sony", age, home):
print(f"My name is {name}. I'm {age} years old. I live in {home}")
SyntaxError: non-default argument follows default argument
를 일으킵니다.
python 기본 문법에 따라 default paramter가 non-default parameter 보다 먼저 쓰일 경우 SyntaxError
를 발생 시킵니다.
참고
https://stackoverflow.com/questions/16932825/why-cant-non-default-arguments-follow-default-arguments