Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 모호한 들여쓰기 감지하기 – tabnanny 모듈 활용 가이드

파이썬에서 들여쓰기(indentation)는 단순한 코드 스타일이 아니라 문법의 핵심 요소입니다. 함수, 클래스, 반복문 등의 코드 블록에 속한 문장들은 반드시 동일한 들여쓰기 수준을 유지해야 하며, 이 규칙이 어긋나면 구문 오류가 발생합니다.

파이썬 표준 라이브러리의 tabnanny 모듈은 이러한 들여쓰기 규칙 위반을 자동으로 감지해 주는 도구입니다. 특히 탭(tab)과 공백(space)이 혼용되어 발생하는 모호한 들여쓰기 문제를 손쉽게 찾아낼 수 있습니다.

tabnanny 모듈은 주로 명령줄(command line) 모드에서 -m 옵션과 함께 사용하도록 설계되었지만, 인터프리터 세션에서 직접 임포트하여 프로그래밍 방식으로 활용할 수도 있습니다.

명령줄에서 tabnanny 사용하기

python -m tabnanny -q example.py

-q(quiet) 옵션을 사용하면 들여쓰기 문제가 있는 파일의 파일명만 간결하게 출력됩니다.

더 자세한 분석 결과를 확인하려면 -v(verbose) 옵션을 사용하세요.

python -m tabnanny -v example.py

tabnanny 모듈의 주요 기능

tabnanny 모듈은 프로그램 코드 안에서 들여쓰기를 검사할 수 있도록 다음과 같은 함수와 플래그를 제공합니다.

check()

지정한 파일에서 모호하게 들여쓰기된 줄을 검사하는 함수입니다. 파일 대신 디렉터리 경로를 매개변수로 전달하면 해당 디렉터리 내의 모든 파일이 재귀적으로 검사됩니다.

사용 예제

import tabnanny
tabnanny.check('example.py')

tabnanny.verbose

상세(verbose) 메시지를 출력할지 여부를 나타내는 플래그입니다. 스크립트 형태로 실행할 때 -v 옵션이 지정되면 이 값이 증가합니다.

tabnanny.filename_only

공백(whitespace) 관련 문제가 있는 파일의 파일명만 출력할지 여부를 나타내는 플래그입니다. 스크립트 형태로 실행할 때 -q 옵션이 지정되면 true로 설정됩니다.

process_tokens()

tokenize 모듈이 생성한 토큰을 처리하는 내부 함수로, check() 함수에서 호출됩니다. 검사 중 모호한 들여쓰기가 감지되면 NannyNag 예외를 발생시키며, 이 예외는 check() 함수에서 포착되어 적절히 처리됩니다.