1. 简介
尽管有各种各样花里胡哨的调试工具和方法可供选择,但要承认,在大多数情况下,print() 才是最方便的代码调试方式😂。通过在程序中适当位置添加打印语句,能够快速了解程序运行过程中的情况,帮助我们发现问题。
icecream 就是一个将 print() 发挥到极致的 Python 库,它的工作方式有些类似于 VS Code 中针对 JavaScript 的插件 Turbo Console Log。下面让我们一起来领略 icecream 中的实用功能吧🍦~
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 install
和 install()
,之后无需在子模块中导入 icecream 也可以使用 ic()。
<code>from icecream import install install()</code>
2.4 个性化设置
除了使用 icecream 默认的信息打印格式之外,我们还可以利用 ic.configureOutput() 来自定义一些显示参数。
更多自定义参数可以访问 icecream GitHub 页面 查看更多。
https://github.com/gruns/icecream#configuration
正如 icecream 的简介中所说的那样:别再使用 print() 进行调试,大家可以在日常使用过程中多多使用 icecream,体会其便捷之处。
暂无评论内容