



default value parameter를 non-default value parameter 앞에 정의하였을 때 아래와 같이 Syntax Error가 발생한다.
def love_you(my_name = "정우성", your_name):
print(f"{my_name} loves {your_name}")
> Traceback (most recent call last):
File "python", line 1
SyntaxError: non-default argument follows default argument
이렇게 default value와 non-default value를 구분지어 순서를 지켜줘야 하는 이유는 python 자체 내에 parameter들의 우선순위에 있다.

- regular positional arguments
- default arguments
- variable length positional arguments
- non-default keyword-only arguments
- keyword-only arguments
- keyword-only arguments with defaults
- variable length keyword arguments
상단 코드에 오류가 발생한 이유는 your_name은 positional arguments에 해당하고 my_name은 default arguments에 해당하는데, default value parameter가 non-default value parameter 앞에 오기 때문이다. 오류를 막기 위해서는 하기와 같은 순서로 parameter를 배열하여야 한다.
def love_you(my_name, your_name="아이유"):
print(f"{my_name} loves {your_name}")