[Python] 001. print 대신 icecream 을 이용한 디버깅

Icecream 패키지 사용하기

Python으로 개발할 때 print로 문자를 출력해서 디버깅을 하는 경우가 많다. 나도 Python 초기 사용할 때 간단히 print로 디버깅을 했었는데 어쩌다 icecream 패키지를 알게된 이후 print 대신 icecream을 사용하게 되었다. 결국 print 를 사용하든 icecream을 사용하든 문자열을 출력해서 문제를 해결하는 단순 디버깅 방법이지만 출력하는 정보가 print 보다는 좀 더 명시적&효과적 인 듯 하다. 사용 방법은 아래와 같다.

설치 패키지

icecream
ic() 기본 함수호출 Source
ic() 기본 함수호출 Source
ic() 기본 함수호출 결과
ic() 기본 함수호출 결과

print(add(1, 2)) 를 사용할 경우 단순히 “3”만 출력이 되겠지만 ic를 사용하게 되면 좀 더 명시적인 정보까지 출력되게 된다. 아래 예제처럼 Dictionary, Class, 함수에서의 사용도 가능하고 configurationOuput 을 이용하여 출력포맷 변경도 가능하다.

ic() dictionary, class, configureOutput 예제
ic() dictionary, class, configureOutput 예제
ic() dictionary, class, configureOutput 결과
ic() dictionary, class, configureOutput 결과

includeConext 옵션을 True(default는 False 이다)로 셋팅하면 파일명, 라인, 호출 함수도 출력된다.

ic() includeContext 예제
ic() includeContext 예제
ic() includeContext 결과
ic() includeContext 결과

유사한 옵션 contextAbsPath를 True로 설정하면 파일의 fullpath를 출력한다. (보통 하나의 Project에 동일한 파일명은 잘 사용하지 않았기 때문에 많이 사용하지는 않았다.) 이외 몇 가지 다른 옵션(argToStringFunction, outputFunction …)이 있기는 한데 간단히 대략 예제에 있는 것 정도만 사용해도 충분한 듯 하다. Icecream Github 참조 (https://github.com/gruns/icecream)

Leave a Comment