반응형
이제 파이썬 디버깅 Icecream 쓰세요
여러분의 코드를 디버깅할 때 print를 쓴다면
터미널에서 너무 많은 출력값으로 인해
혼란스럽고 이 출력값이 어떤 코드에 해당하는
출력값인지 확인하기 번거롭습니다
num1 = 30
num2 = 40
print(num1)
print(num2)
이 코드는 아래와 같이 출력할거에요
30
40
당연히 첫번째가 num1값이고
두번째가 num2값이라는 것을
알아챌 수 있습니다
하지만 출력값이 너무 많다면?
이렇게 사용할 수도 있겠네요
num1 = 30
num2 = 40
print('num1', num1)
print('num2', num2)
num1 30
num2 40
확실히 이전 코드보다는 어떤 변수의
출력값인지 알아보기 쉬워졌습니다
하지만 저렇게 텍스트를 입력하는것은
시간낭비입니다
아래와 같이 작성하면 어떨까요?
num1 = 30
num2 = 40
ic(num1)
ic(num2)
ic| num1: 30
ic| num2: 40
icecream이 뭔가요?
icecream은 디버깅할때 미니멀한 코드로
가독성을 높여주는 파이썬 라이브러리입니다
아이스크림을 사용하기 위해서는
먼저 설치를 해주셔야합니다
$ pip install icecream
간단한 함수를 만들어
결과값을 출력해보겠습니다
from icecream import ic
def plus_five(num):
return num + 5
ic(plus_five(4))
ic(plus_five(5))
ic를 사용하면 단순히 출력만 보는게 아니라
함수와 변수값도 한 눈에 볼 수 있어요
정말 편리하지 않나요?
또 다른 예시도 한번 보시죠
def hello(user:bool):
if user:
print("I'm user")
else:
print("I'm not user")
hello(user=True)
Icecream은 추가적인 텍스트 없이
간편하게 디버깅할 수 있습니다
from icecream import ic
def hello(user:bool):
if user:
ic()
else:
ic()
hello(user=True)
출력값을 보면 5번째 줄에서 실행됐고
7번째 줄은 실행되지 않은 것을
확인할 수 있습니다
from datetime import datetime
from icecream import ic
import time
def time_format():
return f'{datetime.now()}|> '
ic.configureOutput(prefix=time_format)
for _ in range(3):
time.sleep(1)
ic('Hello')
위와 같이 time_format을 prefix로 설정해주면
다음과 같이 실행시간을 측정할 수 있습니다
반응형
'DEVLOG > Python' 카테고리의 다른 글
[Python] 피보나치 수열 7.7배 빠르게 계산하는 방법 (0) | 2021.04.06 |
---|---|
진작 알았더라면 좋았을 파이썬(Python) 기능 5가지 (0) | 2020.01.03 |
Django - No such table: main.auth_user__old 해결하기 (0) | 2019.10.22 |
[Django] No module named 'django.core.urlresolvers' 해결방법 (1) | 2019.10.11 |
댓글