python调试神器:icecream

icecream是一个Python第三方库,可通过最少的代码使打印调试更清晰明了。你可以直接使用 pip install icecream 来进行安装。

变量的调试

from icecream import ic 

num1 = 20
num2 = 30

ic(num1)
ic(num2)

程序输出结果为:

ic| num1: 20
ic| num2: 30

我们可以很清楚的知道调用结果。

函数的调用

from icecream import ic 

def plus_five(a):
    return a+5

ic(plus_five(12))
ic(plus_five(2))

程序输出结果为:

ic| plus_five(12): 17
ic| plus_five(2): 7

判断程序执行位置

如果你想要找到执行代码的位置,可以通过执行如下所示的操作,来查找执行了哪个语句。

from icecream import ic 

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

ic(hello(True))

程序输出结果为:

ic| tmp.py:11 in hello() at 07:52:13.836
ic| hello(True): None

从结果中我们看到,第11行的代码已经被执行了。

自定义输出前缀

如果您想在打印语句中插入自定义前缀(例如代码执行时间),icecream也是能实现的。

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')

程序输出结果为:

2021-02-10 15:59:18.142344|> 'Hello'
2021-02-10 15:59:19.190267|> 'Hello'
2021-02-10 15:59:20.205576|> 'Hello'

获取跟多的信息

除了知道和输出相关的代码之外,你可能还想知道代码执行的行和代码文件。

在ic.configureOutput()中,设置includeecontext的参数值为True即可。

from icecream import ic 

def plus_five(num):
    return num + 5

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

程序输出结果为:

ic| tmp.py:13 in <module>- plus_five(4): 9
ic| tmp.py:14 in <module>- plus_five(5): 10

地址:https://github.com/gruns/icecream

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值