Python/Python 개발환경

Python 디버깅시 print 대신 IceCream의 ic 사용하세요

webnautes 2024. 11. 14. 19:44
반응형

Python 디버깅시 print 대신 사용할 수 있는 IceCream 패키지의 ic를 다룹니다.



최초작성 2024. 11. 14



ic는 print 함수보다 많은 정보를 출력해줍니다. 

 

from icecream import ic

def add(x, y):
    return x + y

print(add(10, 20))
# 30

ic(add(10, 20))
# ic| add(10, 20): 30




ic의 출력을 한 줄로 조정할 수 있습니다. ic.disable()를 사용하면 ic의 출력을 막습니다. 

 

from icecream import ic

def add(x, y):
    return x + y


# ic 출력을 막습니다.
ic.disable()

print(add(10, 20))

ic(add(10, 20))

 

30




ic.enable()을 사용하면 ic의 출력을 허용합니다. 함수 호출한 아규먼트와 함수 결과를 같이 출력해줍니다. 

 

from icecream import ic

def add(x, y):
    return x + y


# ic 출력을 허용합니다.
ic.enable()

print(add(10, 20))

ic(add(10, 20))

 

30

ic| add(10, 20): 30




ic 함수가  몇번째 줄에서 호출되었는지 출력하도록 할 수 있습니다.  

 

from icecream import ic

def add(x, y):
    return x + y


ic.configureOutput(includeContext=True)

print(add(10, 20))

ic(add(10, 20))

 

30

ic| hello.py:11 in <module>- add(10, 20): 30




자료 구조를 출력할때도 정보가 더 많이 출력됩니다.

 

from icecream import ic


data = {'a': 1, 'b': 2, 'c': 3}

print(data)
# {'a': 1, 'b': 2, 'c': 3}

ic(data)
# ic| data: {'a': 1, 'b': 2, 'c': 3}

print(data['a'])
# 1

ic(data['a'])
# ic| data['a']: 1

 

 





참고

 

https://medium.com/pythoneers/debugging-in-python-replace-print-with-ic-and-do-it-like-a-pro-18f330c863cb

 

https://data-newbie.tistory.com/679



반응형