[Python] default value parameter와 non-default value parameter

손종일·2020년 8월 19일
0

Python

목록 보기
13/13
post-thumbnail

default value parameter

함수의 parameter에 default 값을 정의해 줄 수 도 있습니다. Default 값이 정의된 parameter는 함수가 호출될때 값이 넘겨지지 않아도 괜찮습니다. 값이 넘겨지지 않은 경우 default 값이 자동으로 넘겨지게 됩니다.

default value parameter를 non-default value parameter 앞에 정의 하면 안되는 이유는?

파이썬에서의 파라미터를 받는 순서는 다음과 같고, 이 순서를 지키지 않으면 오류가 발생한다.
파라미터를 정의하는 순서 없이 무작위로 생성 시 함수는 어떤 파라미터에 어떤 값을 받아야 될 지 정할 수 없기 때문이다.

def love_you(my_name = "정우성", your_name): 
    print(f"{my_name} loves {your_name}")  //**SyntaxError
def example(a, b, c=None, r="w", d=[], *ae, ****ab)
a,b: positional parameter
c=none: optional parameter
r="w": keyword parameter
d=[]: list parameter
*ae: keyword-only
**ab: var-keyword parameter

파이썬3 부터는 *을 사용하여 오류 없이 사용 가능하다.

def love_you(my_name = "정우성",*, your_name): 
    print(f"{my_name} loves {your_name}")  //**None**

args의 우선순위

파이썬에는 args의 우선순위가 있는데 해당 args가 포함하게되면 우선순위를 지켜야 한다.
Regular positional args -> Default args -> Variable length positional args ->
Non-default args -> Keyword-Only args with default -> Variable length kwargs**

profile
Allday

0개의 댓글