pysnooper

一个牛逼的 Python 调试工具

北城余情 提交于 2021-02-09 12:21:04
码农那点事儿 关注我们,一起学习进步 源 / 开源最前线 一般情况下,在编写 Python 代码时,如果想弄清楚为什么 Python 代码没有按照预期执行的原因,比如你想知道哪些是正在运行,哪些没有运行,以及局部变量的值是什么...通常我们会使用包含断点和观察模式等功能成熟的调试器,或者直接使用 print 语句打印出来。 今天和大家分享一个“贫民版”调试工具—— PySnooper PySnooper允许你执行以上相同的操作,只需为要调试的函数添加一个装饰器即可,而不需要构建正确的 print 打印。你还将得到函数的详细日志,包括运行了哪些代码行、何时运行以及何时更改了局部变量。 PySnooper 使用起来十分简单,开发者可以在任何庞大的代码库中使用它,而无需进行任何设置。你只需添加装饰器,并为日志输出地址指定路径,方法是将其路径指定为第一个参数。 目前, PySnooper 在GitHub上已经获得 7047 个Star, 371 个Fork(GitHub地址: https://github.com/cool-RR/PySnooper ) 示例 以下编写了一个函数,通过返回一个二进制列表。我们只需要通过添加@pysnooper.snoop()装饰器就可以了: import pysnooper @pysnooper.snoop() def number_to_bits

用了十几年才想明白:Python的精髓居然是方括号、花括号和圆括号!

匆匆过客 提交于 2021-01-09 18:06:40
△点击上方 “ Python猫 ”关注 ,回复“ 1 ”领取电子书 剧照 | 《心灵奇旅》 作者:天元浪子 来源:Python作业辅导员 和其他编程语言相比,什么才是Python独一无二的特色呢?很多程序员会说,缩进。的确,缩进是Python语言的标志性特点,但这只是外在的、形式上的。从语言特性层面讲,Python的特点是什么呢?我尝试着在知乎上搜索了一下,最具代表性的答案分别是 语法简洁 、 简单易学 、 代码高效 、 功能强大 等四项。仔细品味这四项,我还是觉得,这是Python语言表现出来的使用效果或用户感受,仍然不是语言特性层面的特色。 换个说法,究竟是Python的哪些语言特性使得人们普遍认为Python具有语法简洁、简单易学、代码高效、功能强大的特点呢?我个人认为,这要归功于列表(list)、字典(dict)、元组(tuple)和集合(set)这“四大金刚”。尽管整型(int)、浮点型(float)和字符串(str)也很重要,但这三种对象相对于其他编程语言来说,差异并不像“四大金刚”那样明显。可以毫不夸张地说,列表、字典、元组和集合代表了Python语言的核心和基础,同时也是Python的精髓所在。学会使用列表、字典、元组和集合,就意味着掌握了Python这门编程语言。 如果认可这个观点,那么,Python的精髓就从列表、字典、元组和集合等“四大金刚”,演变成由方括号

程序员欢乐送(第20期)

匆匆过客 提交于 2020-10-02 08:02:22
程序员欢乐送(第20期) 收录于话题 #程序员欢乐送 59个 对于我来说,我一直保持的追求有三点:技术、快乐、财富。因此,从此三点出发,记录过去一周,我所看到的,值得分享的内容,每周五把欢乐送达。 由于微信不允许外部链接,你需要点击页尾左下角的“ 阅读原文 ”,才能访问文章的链接,文中的所有链接已使用 蓝色字体标记 。 「 技术 Technology 」 1、Windows Terminal 微软Build大会上,微软正式发布了命令行工具Windows Terminal,该工具提供多标签、分割窗口、快捷键、完整的Unicode字符支持等功能。 最重要的是,它支持PowerShell,Cmd,WSL(Windows的Linux子系统)和SSH等命令行程序,可以说是全平台制霸,简化开发者的工作流程。 微软还给Windows Terminal加入很多细节功能,让它更美观。 项目地址: 点击查看 2、Google Assistant 微软Build大会之后紧跟着的就是Google I/O 2019大会,两位巨佬为很多公司指引方向。在Google I/O 2019大会上,Google Assistant再次进化,移动端实时识别语音速度提升 10 倍! 如今的语音助手和人的对话已经接近自然,在与 Google Assistant 对话中,用户可以跨越手机上的 APP 工作。 除此之外