Run 시키게 되면
이런식으로 오류가 뜨게 된다.
TypeError: func_param_with_var_args() missing 1 required keyword-only argument: 'age'
이런식의 오류는 데이터 유형에 관련된 오류이다. age는 position 인데 Keyword가 요구되어졌다고 한다.
해결 방법으로 데이터의 순서를 바꿔주게 되면
*arg를 뒤로 보내주고, position인수 age를 앞으로 땡겨줬다.
결과값이 제대로 나오게 된다.~~~!!
그 이유는 무엇일까?
-> position과 keyword는 맨처음에 오고 그 중에서도 position이 제일 처음으로 와야한다. 그 다음으로, 가변인수(variable length argument)가 순서상으로 맨 마지막에 와야한다.
이번 사고뭉치는 가변키워드함수이다.
순서에 집착하는 놈들 답게 엮시 오류가 났다. 이번 오류는 'invalid syntax'이다.
invalid syntax
이 말인 즉슨 구문에러 즉 소스에러가 잘못 됬다는 말로 문법을 잘못 썼다는 말이다.
다시 제대로 줄세우기를 해주면,
가변키워드 함수를 맨 뒤로 보내주는 형식으로 순서를 positional 함수 name과 age를 맨 앞으로 보내주고 가변키워드 인수(Variable length keyword arguments)가 위치하고 마지막으로 가변키워드 함수(Variable length keyword arguments)순서로 적어 주었다.
그래서 현재 순서는 positonal 값 -> default value -> 가변 키워드 함수 순으로 적어주게되니!!!
값이 제대로 나왓다.~!!!!!
침착하게 보면
가변인수, 위치인수, 가변키워드 인수가 모두 들어가 있는것을 볼수 있고 역시나
inalid sytax- 문법 자체가 틀렸으니 순서를 제대로 나열해라
value에 따라서 20이 맨 처음이니까 age를 맨 앞에써준 후 가변인수 *arg를 써주고 postional인 age를 써준다.그 후 가변키워드 인수인 **kwargs를 맨 뒤로 보내주고 address를 앞으로 땡겨주면 끝!!
이런식으로 변경해주게 되면
제대로된 결과값을 얻을 수 있다.!!