첫번째: 가변인수가 위치인수 사이에 있는 경우🙌
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