icecream,用最少的代码轻松进行代码调试

icecream

https://github.com/gruns/icecream

IceCream 是一个 Python 库,可以使用最少的代码轻松进行代码调试

调试是软件开发的重要组成部分,print 语句很早就被用来调试代码。然而,传统的 print 语句编写起来可能很乏味,并且会使代码变得混乱。

Icecream 通过用简单的函数调用替换 print 语句,提供了一种更简洁、更易读的代码调试方法。

图片

初体验

库的安装

你可以使用 pip 来进行安装。

pip install icecream

基本用法

icecream 库的直接的用法是用  ic() 调用替换 print 语句。

下面是一个基本示例。

from icecream import ic
def multiply(a, b):
    result = a * b
    ic(result)
    return result
multiply(2, 3)

在此示例中,我们使用 ic() 函数打印乘法运算的结果。

输出结果如下所示。

ic| result: 6

请注意,ic() 自动在输出中包含变量名称,从而更容易识别正在打印的值。

一次输出多个值

你还可以使用 ic() 一次打印多个值。

from icecream import ic
def multiply_and_divide(a, b):
    result = a * b
    ic(result, a/b)
    return result, a/b
multiply_and_divide(2, 3)

# 输出为
#ic| result: 6, a/b: 0.6666666666666666

请注意,ic() 在输出中自动用逗号分隔值。

可迭代对象

你可以使用 ic() 打印可迭代对象的内容,例如列表、元组和字典。

from icecream import ic
def sum_list(numbers):
    result = sum(numbers)
    ic(numbers, result)
    return result
sum_list([1, 2, 3, 4, 5])
# 输出为
# ic| numbers: [1, 2, 3, 4, 5], result: 15

请注意,ic() 自动打印列表的内容。

函数

可以使用 ic() 打印函数调用的结果。

from icecream import ic
def multiply(a, b):
    result = a * b
    return result
def square_and_multiply(a, b):
    result = multiply(a**2, b)
    ic(result)
    return result
square_and_multiply(2, 3)
# 输出为
# ic| result: 12

请注意,ic() 自动打印函数的返回值。

表达式

可以使用 ic() 打印表达式的值。

from icecream import ic
def multiply(a, b):
    result = a * b
    ic(result)
    return result
def square_and_multiply(a, b):
    ic(a**2 * b)
    result = multiply(a**2, b)
    return result
square_and_multiply(2, 3)

# 输出为
# ic| a**2 * b: 12
# ic| result: 12

模块和类

可以使用 ic() 打印模块和类的内容。

from icecream import ic
import math
class Circle:
    def __init__(self, radius):
        self.radius = radius
    
    def area(self):
        result = math.pi * self.radius ** 2
        ic(result)
        return result
c = Circle(2)
c.area()

# 输出为
# ic| result: 12.566370614359172

在此示例中,我们使用 ic() 来打印 Circle 类中圆的面积。

自定义格式

你可以使用 format() 方法自定义 ic() 的输出。

from icecream import ic
def multiply(a, b):
    result = a * b
    ic('The result of multiplying {a} and {b} is {result}'.format(a=a, b=b, result=result))
    return result
multiply(2, 3)

# 输出为
# ic| 'The result of multiplying {a} and {b} is {result}'.format(a=a, b=b, result=result): 'The result of multiplying 2 and 3 is 6'

在此示例中,我们使用 ic() 打印一条包含输入值和结果的自定义消息。

自定义前缀

你可以使用 ic.configureOutput() 来自定义输出前缀。prefix 可以是一个字符串,也可以是一个函数。

from icecream import ic
import time

def unixTimestamp():
  return '%i |> ' % int(time.time())

ic.configureOutput(prefix=unixTimestamp)

def multiply(a, b):
    result = a * b
    ic(result)
    return result
multiply(2, 3)

# 输出为
# 1696520290 |> result: 6

IceCream 是一个强大的 Python 代码调试工具,可以替代传统的 print 语句。

它提供有关变量、表达式和函数调用的详细信息,使你可以轻松识别和修复代码中的错误。

来源-----程序员小寒

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇