翼度科技»论坛 编程开发 python 查看内容

使用icecream实现优雅调试Python代码

8

主题

8

帖子

24

积分

新手上路

Rank: 1

积分
24
简介

在大型项目中,使用
  1. print()
复制代码
调试代码可能导致终端输出过多,难以分辨输出结果与代码的对应关系。为了更清晰地调试,可以采用
  1. Icecream
复制代码
库。

安装Icecream

使用pip安装:
  1. pip install icecream
复制代码
使用Icecream

Icecream可以显示函数输出及其参数,使调试更清晰。





示例代码
  1. from icecream import ic
  2. def plus_five(num):
  3.     return num + 5
  4. ic(plus_five(4))
  5. ic(plus_five(5))
复制代码
检查执行情况

Icecream可以显示代码执行的位置,无需添加额外文本信息。
示例代码
  1. from icecream import ic
  2. def hello(user: bool):
  3.     if user:
  4.         ic()
  5.     else:
  6.         ic()
  7. hello(user=True)
复制代码
自定义前缀

Icecream支持自定义输出前缀,如代码执行时间。
示例代码
  1. from datetime import datetime
  2. from icecream import ic
  3. import time

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

  6. ic.configureOutput(prefix=time_format)
  7. for _ in range(3):
  8.     time.sleep(1)
  9.     ic('Hello')
复制代码
获取更多信息

通过设置
  1. includeContext
复制代码
参数为
  1. True
复制代码
,可以显示文件名、代码行、函数信息。
示例代码
  1. from icecream import ic

  2. def plus_five(num):
  3.     return num + 5

  4. ic.configureOutput(includeContext=True)
  5. ic(plus_five(4))
  6. ic(plus_five(5))
复制代码
删除Icecream代码

Icecream仅用于调试,可以轻松搜索和删除所有
  1. ic
复制代码
调试语句,使代码整洁。
示例代码
  1. from icecream import ic

  2. def plus_five(num):
  3.     return num + 5

  4. ic.configureOutput(includeContext=True)
  5. ic(plus_five(4))
  6. ic(plus_five(5))for i in range(10):    print(f'****** Training model {i} ******')
复制代码
总结

通过使用Icecream,可以更有效地进行Python代码调试,同时保持代码的整洁性。更多功能可以访问Icecream的GitHub主页了解。
到此这篇关于使用icecream实现优雅调试Python代码的文章就介绍到这了,更多相关icecream调试Python代码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

来源:https://www.jb51.net/python/32658248h.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具