TIL-python(Function Parameters)

hs·2021년 8월 5일
0
post-thumbnail

❓"함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안 되는 이유가 뭘까?"

우선 Parameters, argument가 뭔지 알아보자.

1
2
3
4
5
def sum(a,b):
    result = a + b
    return result
 
sum(1,3)
cs

이러한 덧셈을 구하는 함수가 있을 때 함수의 정의에서 전달 받은 인수(argument) 를 내부로 전달하기 위해 사용하는 변수를 매개변수(parameters) 라고 한다. 즉, a,b가 parameters이다.
또한 인수(argument)는 함수가 호출될 때 함수로 값을 전달해주는 값을 말한다. 즉, 1,3이 argument이다.

🔅 default value parameter

default value parameter는 뜻 그대로 기본값 매개변수다. 좀 더 이해하기 쉽게 말하자면 매개변수 기본값 설정이라고 보면 좋다. non-default value parameter는 반대로 기본값이 설정되지 않은 매개변수이다.
default value parameter로 매개변수의 기본 갚을 설정해주면 함수 호출시 전달 받지 못한 인수에 대해서는 설정된 기본값으로 자동으로 초기화가 된다.

1
2
 def total(a, b=5, c=10):
    print(a + b + c)   
cs

이렇게 쓸 수있다.
하지만

1
2
def total(a=5, b, c=10):
    print(a + b + c)
cs

이렇게 사용을 하면 SyntaxError가 발생한다.

원인

default value parameter는 뜻 그대로 기본값을 설정해 주는 것이다 . 함수에 전달되는 인수는 함수 선언 시 명시한 매개변수의 순서에 따라 차례대로 저장이 된다. 고로 함수가 호출 될때 전달 받은 인수는 매개변수 b가아닌 매개변수 a에 저장이 되어 매개변수에 저장할 인수가 없기 떄문에 구문 오류가 뜨는 것이다.
그렇기 때문에 default value parameter는 항상 오른쪽부터 차례대로 명시되어야한다

참고 : http://tcpschool.com/python2018/python_function_use

profile
무엇이든 끝까지 보람차게

0개의 댓글