이제 오류에서 parameter나 argument라는 단어가 등장하면 parameter를 매개변수, argument를 인자로 해석하면 됩니다.
함수를 정의할 때 매개변수를 포함해 정의했는데 인자를 전달하지 않으면 어떻게 될까요? 다음 코드처럼 인자를 포함하지 않고 호출해 봅시다.
hi()
실행결과
----> 1 hi()
TypeError: hi() missing 1 required positional argument: 'name'
오류가 발생합니다. 오류 내용을 보면 hi() 함수에 필요한 위치 인자 1개를 누락했다고 나옵니다. hi() 함수를 호출할 때는 반드시 name이라는 항목이 필요한데 name 없이 호출했다는 뜻입니다. 위치 인자라는 용어는 뒤에서 다룹니다.
TIP 사용자 정의 함수를 처음 배울 때 매개변수가 없는 hi() 함수를 정의했습니다. 그리고 이번에는 매개변수를 포함한 hi() 함수를 다시 정의했습니다. 한 프로그램 안에서 같은 이름의 함수를 여러 번 정의하게 되면 마지막에 정의한 함수로 동작하게 됩니다. 이는 변수와 같은 원리입니다. 같은 변수에 다른 값을 여러 번 저장할 수 있지만, 마지막으로 저장된 값만 변수에 기억되는 것과 같습니다.