【Python】推荐比print更好用的调试方法


💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。


Hey,亲爱的编程小伙伴们!今天,我要和你们聊聊一个超级实用的 Python 调试神器------"Ice Cream"库。你是否还在用老旧的 print() 函数来调试代码?如果你的回答是肯定的,那么,你可能已经 Out 了!😉

在编程的世界里,print() 函数就像我们的老朋友,总是在那里,随时准备帮助我们输出信息。但是,你有没有想过,除了 print(),还有没有更酷、更高效的调试方式呢?

举个栗子

想象一下,你定义了一个函数,想要验证它是否按照预期工作。你可能会像这样:

python 复制代码
def square_of(num):
    return num * num

print(square_of(2))
print(square_of(3))
print(square_of(4))

看起来还不错,对吧?但当代码量增加,多个 print() 函数同时工作时,你可能就会开始头疼了。输出太多,你可能会搞不清楚哪个输出对应哪个函数调用。

安装 Ice Cream

好消息是,有一个名为 Ice Cream 的第三方库,可以解决这个问题。首先,你需要通过 pip 安装它:

bash 复制代码
pip install icecream

然后,导入这个库:

python 复制代码
from icecream import ic

函数调用

现在,让我们看看 ic() 函数如何简化我们的调试过程:

python 复制代码
ic(square_of(2))
ic(square_of(3))
ic(square_of(4))

看!ic() 自动输出了函数名称、参数和结果,无需我们手动添加任何说明。

访问字典

Ice Cream 不仅适用于函数调用,它还能输出任何有助于调试的信息,比如字典的键值对:

python 复制代码
from icecream import ic
my_dict = {'name': 'Chris', 'age': 33}
ic(my_dict['name'])

输出结果清晰地显示了字典的变量名和键值。

访问对象属性

再来看看对象属性的访问:

python 复制代码
class Dog():
    num_legs = 4
    tail = True

dog = Dog()
ic(dog.tail)

输出结果告诉我们 dog.tail 的值。

在条件语句中使用

Ice Cream甚至可以在条件语句中使用,帮助我们理解代码的执行流程:

python 复制代码
input = 'Chris'
if input == 'Chris':
    ic()
else:
    ic()

插入现有代码

最棒的是,ic() 函数不会影响代码的执行,你可以在任何地方使用它,就像这样:

python 复制代码
num = 2
square_of_num = square_of(ic(num))

功能禁用

当调试完成后,你只需一行代码就可以禁用Ice Cream的所有输出:

python 复制代码
ic.disable()

所有 ic() 函数调用将不再输出任何内容,让你的代码保持干净整洁。

总结

Ice Cream是一个增强版的 print(),它为 Python 调试提供了详细的输出,让调试变得异常方便。它不会取代 print() 或日志系统,但它绝对是你日常工作学习中的好帮手。试试看,你会发现新世界的!


🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

|---------------------------|
| 💖The End💖点点关注,收藏不迷路💖 |

阅读原文:https://mp.weixin.qq.com/s/00Xjtc8td1xPPX8XrVGyxA

往期文章合集:https://stormsha.blog.csdn.net/article/details/139203741

相关推荐
Cyanto18 分钟前
Spring注解IoC与JUnit整合实战
java·开发语言·spring·mybatis
在努力的韩小豪21 分钟前
如何从0开始构建自己的第一个AI应用?(Prompt工程、Agent自定义、Tuning)
人工智能·python·llm·prompt·agent·ai应用·mcp
写不出来就跑路25 分钟前
WebClient与HTTPInterface远程调用对比
java·开发语言·后端·spring·springboot
悠哉清闲37 分钟前
C++ MediaCodec H264解码
开发语言·c++
张人玉37 分钟前
c#中Random类、DateTime类、String类
开发语言·c#
Jinkxs1 小时前
JavaScript性能优化实战技术
开发语言·javascript·性能优化
Otaku love travel2 小时前
实施运维文档
运维·windows·python
测试老哥2 小时前
软件测试之单元测试
自动化测试·软件测试·python·测试工具·职场和发展·单元测试·测试用例
ydm_ymz2 小时前
C语言初阶4-数组
c语言·开发语言
presenttttt2 小时前
用Python和OpenCV从零搭建一个完整的双目视觉系统(六 最终篇)
开发语言·python·opencv·计算机视觉