[Python] Function Parameter

난나다·2022년 6월 23일
0

Python 정리

목록 보기
2/10

시작하며

default value parameter를 non-default value parameter 앞에 정의하면 안되는 이유에 대해 알아보겠습니다.

Parameter Default Value

Default 값이 정의된 parameter 는 함수가 호출될 때 값을 입력하지 않게되면 default 값이 자동으로 넘겨지게 됩니다.

1. 모든 parameter에 default 값을 주지 않을 때

def hello(name, age, home):
    print(f"My name is {name}. I'm {age} years old. I live in {home}")

매개 변수를 순서를 바꿔도 error가 발생하지 않습니다.

2. default 값이 지정된 parameter를 default 값이 지정되지 않은 parameter 보다 뒤에 위치시킬 때

def hello(name, age, home="seoul"):
    print(f"My name is {name}. I'm {age} years old. I live in {home}")

역시 error 없이 잘 작동합니다.

3. default 값이 지정된 parameter를 default 값이 지정되지 않은 parameter 보다 앞에 위치시킬 때

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 를 일으킵니다.

error가 발생하는 이유는?

python 기본 문법에 따라 default paramter가 non-default parameter 보다 먼저 쓰일 경우 SyntaxError 를 발생 시킵니다.


참고

https://stackoverflow.com/questions/16932825/why-cant-non-default-arguments-follow-default-arguments

0개의 댓글