TIL11 위치인수 와 가변인수 위치

chp9419·2021년 5월 19일
0
post-thumbnail

오늘은 위치인수와 가변인수 위치변경시 발생하는 상황을 설명해보겠다.

첫번째: 가변인수가 위치인수 사이에 있는 경우🙌

def func_param_with_var_args(name, *args,age):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)
 func_param_with_var_args("정우성", "01012341234", "seoul", 20)

우리는 이때 알수 있다. 무엇을 ?....

TypeError: func_param_with_var_args() missing 1 required keyword-only argument: 'age'

에러가 났다는것을...



그이유가 무엇이냐.



💥가변인수는 절대로 위치인수 앞 혹은 중간에 절대로 올수 없다.

위치인수는 정확하게 한개의 인자를 받을준비를 하고 있으니 앞에 오는 것이 당연하다.
하지만 가변인수는 인자를 몇개를 받을지 모를상황에서 오는 것이 맞으니 무조건 제일 뒤쪽으로 가서 인자를 받을 준비를 해야한다.

이것을 다시 올바르게 전환 한다면 아래와 같다.

두번째: 위치인수 다음 가변인수가 온 경우 🙌

def func_param_with_var_args(name, age,*args):
    print("name=",end=""), print(name)
    print("args=",end=""), print(args)
    print("age=",end=""), print(age)
func_param_with_var_args("정우성", "01012341234", "seoul", 20)
name=정우성
args=('seoul', 20)
age=01012341234
profile
주어진 문제는 해결하고 공부하고 성장한다.

0개의 댓글

관련 채용 정보