2021
1 背景
今天在 Github 的时间线上看到了一个有意思的 Python 库,名字叫做 "IceCream"。这个库用来取代 print()
函数,实现更加可控且优雅的调试输出。IceCream 的接口形式非常简单,只要直接将函数的调用形式传入即可。如下面的代码:
1 | from icecream import ic |
会产生下面的输出
1 | ic| foo(123): 456 |
这个是怎么实现的呢?我查了一下代码发现 ic
函数(实际上一个实现了 __call__
的类的实例)主要使用了 inspect
这个库。这是一个 Python 的标准库而我从来没有用过。