더북(TheBook)

주어 start는 첫 번째 인자 self에 할당된다. 인수 1337은 두 번째 인자 seconds에 할당된다.

이러한 메커니즘이 혼란할 수 있고, 특히 오류가 발생하면 더 그렇다. 예를 들어 increment를 인수 두 개와 호출하면 오류가 발생한다.

>>> end = start.increment(1337, 460)

TypeError: increment() takes 2 positional arguments but 3 were given

괄호 안에는 인수가 두 개뿐이어서 이런 오류 메시지가 처음에는 혼란스러울 수 있다. 그러나 주어도 인수로 간주되므로 인수는 모두 세 개가 맞다.

그런데 위치 인수(positional argument)는 인자 이름이 없는 인수다. 즉, 키워드 인수가 아니다. 함수 호출에서

sketch(parrot, cage, dead=True)

parrotcage는 위치 인수이고, dead는 키워드 인수다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.