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

Jinsung·2021년 11월 6일
0

python

목록 보기
22/25
post-custom-banner

1. positional arguments

기본적인 방법으로 순서대로 적용

def add(num1, num2):
	print(f"{num1} 과 {num2}")

add(1,2)


## 2.Keyword Arguments
> 인자의 이름에 직접 적용

def add(num1, num2):
print(f"{num1} 과 {num2}")

add(num1 = 1, num2=2)


## Mixing positional arguments
> 위 두 방법을 동시 사용

def add(num1, num2):
print(f"{num1} 과 {num2}")

add(1, num2=2)


위와 같이 순서대로 진행하면 오류 날일이 없다 하지만 positional argments의 위치가 변하면 오류가 발생한다.

def add(num1, num2):
print(f"{num1} 과 {num2}")

add(num2 = 2, 1)
positional argument follows keyword argument


이유를 확인하면 2는 num2라는 인자를 통해 제 자리로 속해지고 1은 아무런 길잡이가 없어 자리를 못찾기 때문에 num1자리가 공석이 발생해 오류가 발생하는 것이다

## Parameter Default Value
> 함수의 피라미터에 default값을 정의

def add(num1, num2 = "2"):
print(f"{num1} 과 {num2}")

add(1)


이때도 Mixing positional arguments 처럼 num1에 값을 정의해주고 값주면 에러가 발생한다. 이유는 위에 문제와 동일하게 default argument가 앞 쪽에 위치하게 된다면 인자가 들어갈 곳이 모호해지기 때문에 에러가 발생한다.
 
post-custom-banner

0개의 댓글