Python代码调试利器:简单实用的工具

1. 简介

尽管有各种各样花里胡哨的调试工具和方法可供选择,但要承认,在大多数情况下,print() 才是最方便的代码调试方式😂。通过在程序中适当位置添加打印语句,能够快速了解程序运行过程中的情况,帮助我们发现问题。

icecream 就是一个将 print() 发挥到极致的 Python 库,它的工作方式有些类似于 VS Code 中针对 JavaScript 的插件 Turbo Console Log。下面让我们一起来领略 icecream 中的实用功能吧🍦~

图片[1]-Python代码调试利器:简单实用的工具-山海云端论坛

2. 利用 icecream 进行高效调试

让我们先来看看 icecream 最基础的使用方式。假设我们需要在循环过程中打印每一轮对应的几个变量,在传统方式下,我们可能这样写:

<code>for i in range(3): j = i + 1 k = i ** 2 print('i : ', i, 'j : ', j, 'k : ', k)</code>

而基于 icecream,事情就变得简单了一些:

<code>from icecream import ic for i in range(3): j = i + 1 k = i ** 2 ic(i, j, k)</code>

这就是 icecream 的基础用法,下面我们来学习其更加丰富的功能特性:

2.1 检查各种变量

icecream 可以对任何类型的变量进行检查,只需将变量传入 ic() 中即可,甚至连 pandas 中的数据框都可以友好地进行打印输出。

<code>import pandas as pd def demo_func(x): return x + 1 class DemoClass: a = 1 demo_df = pd.DataFrame({ 'a': [1, 2, 3], 'b': ['a', 'b', 'c'] }) ic(demo_func(1)) ic(DemoClass.a) ic(demo_df)</code>

2.2 检查代码执行位置

通过 ic(),不传递任何参数时,会自动打印出所在位置、所属父级函数等信息。

<code>def demo(): ic() a = 1 if 1 > 0: ic() a += 1 else: ic() a -= 1 demo()</code>

2.3 一处导入处处使用

可以在主文件开头执行 from icecream import installinstall(),之后无需在子模块中导入 icecream 也可以使用 ic()。

<code>from icecream import install install()</code>
图片[2]-Python代码调试利器:简单实用的工具-山海云端论坛

2.4 个性化设置

除了使用 icecream 默认的信息打印格式之外,我们还可以利用 ic.configureOutput() 来自定义一些显示参数。

图片[3]-Python代码调试利器:简单实用的工具-山海云端论坛
图片[4]-Python代码调试利器:简单实用的工具-山海云端论坛

更多自定义参数可以访问 icecream GitHub 页面 查看更多。
https://github.com/gruns/icecream#configuration

正如 icecream 的简介中所说的那样:别再使用 print() 进行调试,大家可以在日常使用过程中多多使用 icecream,体会其便捷之处。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容