利用icecream调试python代码


来源:调试Python代码,不要再用print了

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

一、直接显示参数、函数及结果

from icecream import ic
def plus_five(num):
    return num + 5
ic(plus_five(4))
ic(plus_five(5))

OUT:

ic| plus_five(4): 9
ic| plus_five(5): 10


二、检查执行的情况
如果你想要找到执行代码的位置,可以通过执行如下所示的操作,来查找执行了哪个语句。
def hello(user:bool):
    if user:
        ic()
    else:
        ic()

hello(user=True)
hello(user=False)

out:显示执行的行数

ic| <ipython-input-7-c7eae3f4cba5>:3 in hello() at 08:57:13.181
ic| <ipython-input-7-c7eae3f4cba5>:5 in hello() at 08:57:13.215

三、执行加前缀

1)如果您想在打印语句中插入自定义前缀(例如代码执行时间),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')

OUT:

2021-02-19 16:57:59.528296|> 'Hello'
2021-02-19 16:58:00.557745|> 'Hello'
2021-02-19 16:58:01.581405|> 'Hello'

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

def plus_five(num):
    return num + 5

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

OUT:

2021-02-19 16:59:09.005509|> <ipython-input-11-826dd3392d51>:7 in <module>
                             plus_five(4): 9
2021-02-19 16:59:09.052417|> <ipython-input-11-826dd3392d51>:8 in <module>
                             plus_five(5): 10


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM