1. 함수를 정의 할 때 default value parameter를 non-default value parameter 앞에 정의하면 안 되는 이유는 뭘까?
Default value parameter는 자신의 자리를 알고 있지만, non-Default value parameter는 모르기 때문에 자리에 맞춰서 정의해야 하는 게 아닐까?
-> 앞에서 default value parameter를 쓰더라도 positional arguments를 따라 순차적으로 인수가 할당되므로, 앞에 default value parameter에도 인수가 할당되고, 마지막 non-default value parameter에는 할당할 수 있는 인수가 없으므로 SyntaxError가 뜬다. 이런 일을 방지하고자 함수에서는 non-default value를 우선적으로 배치한다.
2. 위치 인수(positional arguments)와 가변 인수(variable length arguments)의 위치를 참고 자료를 통해 조사해서 어떤 에러가 발생하는지 확인하고, 에러를 고쳐보자.
여기에서는 *args가 중간에 위치하고 있어서 오류가 발생함으로
아래처럼 수정해 준다.
*args 위치만 바꿔주면 정상적으로 출력이 된다.
3. 가변 키워드 인수 (variable length keyword arguments)의 위치를 참고 자료를 통해 조사해서 어떤 에러가 발생하는지 확인하고, 에러를 고쳐보자.
여기서는 **kwargs의 위치를 뒤쪽으로 수정해 준다.
이렇게 **kwargs의 위치만 수정해 주면 된다.
4. 위치 인수와 키워드 가변 키워드 인수 (variable length keyword arguments)의 위치를 위치를 참고 자료를 통해 조사해서 어떤 에러가 발생하는지 확인하고, 에러를 고쳐보자.