TIL10 함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안 되는 이유
왜 정의된 매개변수가 인자 값을 받고 있으면 오류가 왜 나는지 말해보겠다.
첫번째: 매개변수2가 인자값을 받았을경우
def avc(a,b=2):
print(a*b)
avc(2)
4
보다시피 정상적으로 인자 값을 매개변수가 받고 호출하는 변수에서 avc(2)
로 첫번째 매개변수도 인자값을 받았기 떄문에 정상적으로 4
가 출력된다!.
두번쨰 함수 매개변수1에서 인자값을 받고 출력한 경우
def a(a=2,b):
print(a*b)
a(2)
SyntaxError: non-default argument follows default argument
에러가뜬다.
그 이유는 호출된 함수 a(2)가 함수 매개변수1에 2로 들어가야지 정상적으로 호출되는데 이미 매개변수1에서 인자값 2를 받고 있어
문법적 오류가 떠서 에러가 발생하는 것이다.
그러므로 매개변수 안에 인자값을 받고있게 해서는 안된다.
쉽게 말하면 초깃값이 지정된 매개변수는 뒤로 몰아주면 정상적으로 호출이 작동된다!
Author And Source
이 문제에 관하여(TIL10 함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안 되는 이유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@chp0510/함수를-정의-할때-default-value-parameter를-non-default-value-parameter-앞에-정의-하면-안-되는-이유저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)