훈훈훈
파이썬 : Non-default argument와 Default argument 본문
# default value parameter
default value parameter 는 함수가 호출될때 파라미터에 인자를 받아 넘겨준다.
# non-default value parameter
non-default value parameter 는 함수가 호출될때 파라미터에 인자를 받아 넘겨줄 수 도 있으며, 인자를 넘겨주지 않아도
keywordname=value 형식으로 선언되어 있기 때문에 지정한 value 를 넘겨줄 수 있다.
파이썬에서는 정의할때 파라미터를 받는 순서를 지켜야한다.
다음 코드를 살펴보면 non-default value parameter 를 먼저 받고 default value parameter를
받을 시 다음과 같은 오류 메시지를 확인할 수 있다.
** default value parameter를 non-default value parameter 앞에 정의 하면 안되는 이유?
먼저, 파이썬에서 파라미터를 받는 순서는 다음과 같으며 이 순서를 지키지 않을 시 오류가 발생한다.
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 이상부터는 "*"를 이용하면 다음과 같이 오류 없이 사용할 수 있다.
*참고 자료
https://stackoverflow.com/questions/16932825/why-cant-non-default-arguments-follow-default-arguments
'파이썬 > Python' 카테고리의 다른 글
파이썬 : 모듈 및 패키지 (0) | 2020.02.01 |
---|---|
파이썬 : 문자열 포매팅 종류별 속도 비교 (0) | 2020.01.30 |
파이썬 : 스코프(유효 범위)와 클로저 (2) | 2020.01.17 |
파이썬 : 얕은 복사와 깊은 복사 (0) | 2020.01.13 |
파이썬 : 가변 객체와 불변 객체 (0) | 2020.01.13 |