IceCream
IceCream
就像print
,但提供了更甜蜜的输出。你可以直接用ic
替代原来的print
。相较于print
,icecream
具有以下优势:
icecream
是一个第三方库,可以用pip
安装。pip install icecream
下面我们比较一下print
和ic
:
from icecream import ic
a = {"日期":"2024-2-12", "温度":15, "xx":[1,2,3,4,5,6]}
b = {"日期":"2024-2-12", "温度":15, "xx":[1,2,3,4,5,6]}
c = [a,b]
print(c)
ic(c)
运行结果:
运行结果1
相较于print
,ic
提供了更易读的输出。
下面是ic
的一些常用用法,完整的文档可以查看https://github.com/gruns/icecream。基本上print能做的事情,ic都可以做的更好。
为了节省空间,下面代码省略了 from icecream import ic
def foo(i):
return i + 333
ic(foo(123))
d = {'key': {1: 'one'}}
ic(d['key'][1])
class klass():
attr = 'yep'
ic(klass.attr)
def foo(a):
ic()
if a % 2 == 1:
ic()
b = True
else:
ic()
b = False
return b
is_odd = ic(foo(12))
运行结果:
运行结果2
ic
输出 可以通过ic.disable()
,ic.enable()
禁用,启用ic的输出。ic(1)
ic.disable()
ic(2)
ic.enable()
ic(3)
运行结果:
运行结果3
ic.configureOutput(prefix, outputFunction, argToStringFunction, includeContext, contextAbsPath)
配置ic的输出。ic|
stderr
。pprint.pformat()
。例如,下面通过设置outputFunction
将信息输出到文件中。
from icecream import ic
import time
def add(a, b):
return a + b
def to_file(s):
with open('debug.txt', 'a') as f:
f.write(
time.strftime("%c", time.localtime())+
' ' + s + '\n')
ic.configureOutput(prefix="Debug|", outputFunction=to_file,
includeContext=True)
ic(add(11,22))