파이썬 -Function Parameters

97woo·2022년 2월 3일
0

1.Parameter 종류

일단 파라미터의 종류를 정리하고 가자

(1)Non-Default Value Parameter

말 그대로 기본값이 없는 파라미터를 말하는건데

 def age(num1, num2):
     print(num1, num2)

만약 함수 age를 호출 했을때 num1,num2같이 기본값을 설정하지 않은 경우를
Non-Default Value Parameter라고 한다. 하지만 num1과 num2의 값이
없기 때문에 input이 필수로 들어가야합니다. 함수호출시 작동을 안할수도 있기 때문이다.

(2)Default Value Parameter

 def age(num1 = 18, num2 = 22):
     print(num1, num2)
18 22

여기는 기본값이 설정되어있기때문에 바로 호출시에는 18하고 22가 값으로 나오게 된다.
그렇기 때문에 기본값이 있는 파라미터이다.

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

default value parameter를 non-default value parameter 앞에 정의 하면
SyntaxError: non-default argument follows default argument 이런 에러가 나오는데

구글링 결과 function parameter에는 argument를 처리하는 순서가 있다고 한다.

  1. 앞에서부터 순서대로 지정되는 위치 인자
  2. 기본값이 정해져있는 매개 변수
  3. 가변 인수(*arg) (예 - list, tuple)
  4. 키워드 인수
    4-1. 기본값이 정해지지 않은 키워드 인수
    4-2. 기본값이 정해져있는 키워드 인수이며 *(asterisk) 뒤에 오는지로 2번과 구분
  5. 가변 키워드 인수(**kwargs) (예 - dictionary)

오류가 발생하는 원인은 순서없이 무작위로 생성시 어떤 파라미터에 값을 받아야 할지
정할수 가 없기 떄문이다.

예를들어

   def func(x=1,y):
       print(x,y)
  func(2)

우리의 생각? 대로 라면 x=는 자명히 1의 값을 가져가야 하지만
default 값을 가진 parameter도 당연히 값이 변경 가능하기 때문에
func(2)의 2는 x의 에게 할당이 되서 에러가 나게 됩니다.

profile
한 발씩 나아가는중

0개의 댓글