【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

相关推荐
JHC0000004 小时前
基于Ollama,Milvus构建的建议知识检索系统
人工智能·python·milvus
mOok ONSC4 小时前
SpringBoot项目中读取resource目录下的文件(六种方法)
spring boot·python·pycharm
ZPC82104 小时前
如何创建一个单例类 (Singleton)
开发语言·前端·人工智能
超绝振刀怪5 小时前
【C++多态】
开发语言·c++
workflower5 小时前
AI制造-推荐初始步骤
java·开发语言·人工智能·软件工程·制造·需求分析·软件需求
GIS兵墩墩5 小时前
postgis--PostgreSQL16及其plpython3u扩展
python·postgis
new Object ~5 小时前
LangChain的短期记忆存储实现
python·langchain
魔都吴所谓5 小时前
【Python】从零构建:IP地理位置查询实战指南
开发语言·python·tcp/ip
环黄金线HHJX.6 小时前
【吧里BaLi社区】
开发语言·人工智能·qt·编辑器