Python(Function Parameter)

Jungyub Song·2020년 4월 21일

1. Positional arguments

2. Keyword arguments

3. Mixing positional arguments and keyword arguments

4. Parameter Default Value

5. 함수를 정의할 때 default value parameter를 non-default value parameter 앞에 정의하면 안되는 이유

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들의 우선순위에 있다.

  1. regular positional arguments
  2. default arguments
  3. variable length positional arguments
  4. non-default keyword-only arguments
  5. keyword-only arguments
  6. keyword-only arguments with defaults
  7. 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}") 

0개의 댓글