Python - Parameter Default Value (2019. 11. 28)

evergreendavid1118·2019년 11월 28일
0

1. Parameter Default Value

다음 함수를 실행하면 syntax error 나며 Error 메시지는 non-default argument 가 default argument뒤에 위치한다는 에러이다.

def love_you_not_ok(my_name = "정우성", your_name ):
    print(f"{my_name} loves {your_name}")

SyntaxError: non-default argument follows default argument

해당 에러가 나는 이유는 파이썬은 default value parameter 를 가지는 함수를 보면, 함수로 전달되는 인자를 첫번째 부터 채워넣기 때문이다.
위와 같이 love_you_not_ok 함수 호출시, "이정재"가 my_name 인지, your_name인지 파이썬 입장에서 알 수가 없으므로 문법에러를 출력한다.
default value parameter 를 가지는 함수를 선언할 때는 뒤에서 부터 default value 를 지정해주자.
이렇게 함으로써 입력값을 입력 안한 인자는 default value 를 가지고 함수를 실행하며, default parameter 가 아닌 인자가 입력이 되지 않으면
missing required positional argument 에러를 출력하게 된다.


# Syntax error , default value parameter를 non-default value parameter 앞에 선언하면 syntax error
# def love_you_not_ok(my_name = "정우성", your_name ):
#     print(f"{my_name} loves {your_name}")

# 호출 예제
#love_you_not_ok("이정재")


# default value parameter
def love_you_ok(my_name, your_name="아이유"):
    print(f"{my_name} loves {your_name}")

love_you_ok()  # missing required positional argument 에러 출력 
love_you_ok("이정재")
love_you_ok("이정재", "아이유")

0개의 댓글