더북(TheBook)

12.8 디버깅

리스트, 사전, 튜플은 자료 구조(data structure)라고 한다. 이 장에서는 키는 튜플, 값은 리스트인 사전이나 튜플의 리스트 같은 복합 자료 구조를 살펴봤다. 복합 자료 구조는 유용하지만, 오류가 발생하기 쉬우며 이러한 오류는 자료 구조가 잘못된 타입, 크기, 구조를 갖는 게 원인이므로 나는 이를 성형 오류(shape error)라고 부른다. 예를 들어 정수가 1개인 리스트를 기대했는데 리스트에 있는 정수가 아니라 보통의 정수를 제공하면 그 코드는 동작하지 않을 것이다.

이러한 종류의 오류를 디버깅하기 쉽게 하기 위해 structshape라는 모듈을 작성했으며, 이 모듈에는 structshape라는 이름이 같은 함수가 있다. 이 함수는 어떤 종류의 자료 구조도 인수로 받을 수 있으며 자료 구조의 모양을 요약한 문자열을 반환한다. 이 모듈은 다음 주소에서 받을 수 있다.

URL http://thinkpython2.com/code/structshape.py

간단한 리스트에 structshape를 사용해보자.

>>> from structshape import structshape

>>> t = [1, 2, 3]

>>> structshape(t)

'list of 3 int'

좀 더 예쁜 프로그램이라면 list os 3 ints라고 출력하겠지만, 복수형을 다루지 않는 게 더 쉽다. 이번에는 리스트의 리스트에 사용해보자.

>>> t2 = [[1,2], [3,4], [5,6]]

>>> structshape(t2)

'list of 3 list of 2 int'

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