python 进阶调试工具

icecream

from icecream import ic

num1 = 30
num2 = 40 

ic(num1)
ic(num2)

# ic| num1: 30
# ic| num2: 40


# 检查文件的位置
from icecream import ic 

def hello(user:bool):
    if user:
        ic()
    else:
        ic()

hello(user=True)

# ic| a.py:7 in hello() at 19:29:38.080


# 自定义前缀
from datetime import datetime
from icecream import ic 
import time
from datetime import datetime

def time_format():
    return f'{datetime.now()}|> '

ic.configureOutput(prefix=time_format)

for _ in range(3):
    time.sleep(1)
    ic('Hello')

# 2023-08-25 19:30:14.788881|> 'Hello'
# 2023-08-25 19:30:15.956114|> 'Hello'
# 2023-08-25 19:30:16.957825|> 'Hello'    


# 获得更多的上下文信息
# 这个功能可以让你知道函数的调用栈,aop调用找源头的时候非常有用
from icecream import ic 

def plus_five(num):
    return num + 5

ic.configureOutput(includeContext=True)
ic(plus_five(4))
ic(plus_five(5))

# ic| a.py:11 in <module>- plus_five(4): 9
# ic| a.py:12 in <module>- plus_five(5): 10

pysnooper

# 项目官方地址:https://github.com/cool-RR/PySnooper
import pysnooper
import random

def foo():
    lst = []
    for i in range(10):
        lst.append(random.randrange(1, 1000))

    with pysnooper.snoop():
        lower = min(lst)
        upper = max(lst)
        mid = (lower + upper) / 2
        print(lower, mid, upper)

foo()

作者:spike

分类: Python

创作时间:2024-09-27

更新时间:2024-12-09