반응형

파이썬, 디버깅 print는 ic를 이용하면 좋아요.

 

글. 수알치 오상문 

 

디버깅 정보를 출력하기 위해 print 함수를 많이 사용합니다.

그런데 ic 함수를 사용하면 훨씬 보기 좋고, ic.disable()를 이용하여

출력을 중지시킬 수 있어서 디버깅이 편해집니다.

 

먼저 icecream 패키지를 설치해야 ic 출력 함수를 사용할 수 있습니다.

 

pip install icecream

 

다음은 print 함수와 ic 함수 출력 결과를 비교하는 예제입니다.

 

[예제 코드] 

from icecream import ic

def calc(a, b):
  return a + b

ret = calc(10, 20)

print(ret)
print('-'*80)
ic(ret)
print('-'*80)

data = [
        {'name':'tom', 'age':30, 'mobile':'01011112222'},
        {'name':'maria', 'age':25, 'mobile':'01034561111'}
       ]

print(data)
print('-'*80)
ic(data)

 

[주의] 파이썬 IDLE에서 실행하면 ic 출력이 제대로 되지 않으므로 터미널이나 cmd 상태에서 실행하자.

 

 

[결과] ic를 이용하면 관련 객체 정보도 출력되고, 보기 좋은 구조로 출력되는 것을 볼 수 있다.

30
--------------------------------------------------------------------------------
ic| ret: 30   
--------------------------------------------------------------------------------
[{'name': 'tom', 'age': 30, 'mobile': '01011112222'}, {'name': 'maria', 'age': 25, 'mobile': '01034561111'}]
--------------------------------------------------------------------------------
ic| data: [{'age': 30, 'mobile': '01011112222', 'name': 'tom'},   <----
           {'age': 25, 'mobile': '01034561111', 'name': 'maria'}]

 

ic 출력 기능을 끄고 싶으면 ic.disable()을 호출하면 된다. (ic.enable()는 반대 기능)

 

[예제]

from icecream import ic

ic.disable()  # ic 출력 기능을 끈다.

def calc(a, b):
  return a + b

ret = calc(10, 20)

print(ret)
print('-'*80)
ic(ret)
print('-'*80)

data = [
        {'name':'tom', 'age':30, 'mobile':'01011112222'},
        {'name':'maria', 'age':25, 'mobile':'01034561111'}
       ]

print(data)
print('-'*80)
ic(data)

 

[결과] ic.disable() 기능으로 ic 출력을 끌 수 있다.

30
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
[{'name': 'tom', 'age': 30, 'mobile': '01011112222'}, {'name': 'maria', 'age': 25, 'mobile': '01034561111'}]
--------------------------------------------------------------------------------

 

반응형

+ Recent posts