点击上方“ Python猫 ”,选择“ 设为星标 ”
花下猫语: 自公众号“Python猫”创办以来,我主要发布的内容都是 Python 进阶、Python 哲学、Python 社区以及 Python 翻译。随着读者群扩大,大家的阅读诉求也变得多样,因此,我决定适当扩充本号的内容种类,以便读者们获得更多的收获。
PyCharm 几乎是最受欢迎的 Python 开发工具,相信很多同学都在使用,那么,如何高效地使用它,提升工作效率呢? 今天分享的这个系列文章,介绍了一些使用技巧,一起来看看吧!
文章来源: Python编程时光
(本文经原作者授权转载,不得二次转载)
《千与千寻》 电影 剧照
此系列的第一篇文章的阅读量还不错, 说明大家对 PyCharm 使用技巧还是颇感兴趣的。今天又来给大家推荐一些我自己的用的小技巧,大家择需所取即可。
6. 神一样的调试技巧
假如我们在一个爬虫的项目中,会使用到 正则表达式 来匹配我们想要抓取的内容。正则这种东西,有几个人能够一步到位的呢,通常都需要经过很多次的调试才能按预期匹配。在我们改了一次正则后,运行了下,需要重新向网站抓取请求,才能发现没有匹配上,然后又改了一版,再次运行同样需要发起请求,结果还是发现还是没有匹配上,往往复复,正则不好的同学可能要进行几十次的尝试。
(上面这个例子可能不太贴切,毕竟是有很多种方法实现不用重新发请求,只是列举了一种很笨拙且低效的调试过程,你看看就好了)
而我们在这几十次的调试中,向同一网站发起请求都是没有意义的重复工作。如果在 Pycharm 中可以像 IPython Shell 和 Jupyter Notebook 那样,可以记住运行后所有的变量信息,可以在不需要重新运行项目或脚本,只需稍微调整下我们的代码,直接就可以进行正则调试。
答案当然是有。
假如我在调试如下几行简单的代码。在第 3 行处打了个断点。然后点击图示位置 Show Python Prompt 按钮。
就进入了 Python Shell 的界面,这个 Shell 环境和我们当前运行的程序环境是打通的,使用的是同一个 namespace,这下你可以轻松地进行调试了。
上面我们打了个断点,是为了方便说明这个效果。并不是说一定要打断点。如果不打断点,在脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。
现在我们已经可以满足我们的调试的需求,但是每次运行脚本,都要手动点击 Show Python Prompt ,有点麻烦。嗯?其实这个有地方可以设置默认打开的。这个开头还比较隐秘,一般人还真发现不了。
你需要点击图示位置 Edit Configurations 处。
然后在这里打勾选中。
设置上之后,之后你每次运行后脚本后,都会默认为你存储所有变量的值,并为你打开 console 命令行调试界面。
除了上面这种方法,其实还有一种方法可以在调试过程中,执行命令表达式,而这种大家可能比较熟悉了,这边也提一下,就当是汇总一下。但是从功能上来说,是没有上面这种方法来得方便易用的。因为这种方法,必须要求你使用 debug 模式运行项目,并打断点。
使用方法就是,在你打了断点后,在图示位置处,点击右键使用 Evaluate Expression
就弹出了一个 Evaluate Expression 窗口,这里 可以运行命令表达式,直接操作变量。
7. 指定参数执行脚本
你在 Pycharm 运行你的项目,通常是怎么执行的?我的做法是,右键,然后点击 Run ,或者使用快捷键 Shift + F10 。
有时候,在运行/调试脚本的时候,我们需要指定一些参数,这在命令行中,直接指定即可。
假设在命令行中,运行脚本的命令是这样
python main.py init --local
对于刚使用 Pycharm 的同学,可能并不知道 Pycharm 也是可以指定参数的。点击下图位置
进入设置面板,在 Script parameters 中填入参数即可。
同时在上图的底部,你可以看到,这里可以很方便的切换 解释器,比你跑到这边来要容易得多吧
8. 搜索时过滤测试文件
接下来,介绍一个,我看框架源码的时的一个小技巧,可能只适用一小部分人吧。
我平时会看的框架是 OpenStack ,我不知道其他框架是怎样的,但在 OpenStack 里面带有大量(真的很多)的单元测试文件。这给我在使用 Find in Path 时带来了不小的困扰,你可以从下图的搜索结果中感受一下,搜索一个函数,test 文件里的结果比 正常文件要多很多。
这些测试文件的搜索结果,对于我们看源代码不仅没有任何帮助的,更重要的是还干扰视线。于是我就研究了一下,从文件名入手,只要在 File mask 里填写 !test* 可以将这些test文件过滤掉。搜索结果一下子清晰很多。
9. 关闭烦人的灯泡提示
本来没有想写这个的,但是知乎上有一位朋友有这个需求,那我研究了下。
先来说下这个灯泡提示是什么,有什么用?
当我们在代码里面有语法错误,或者代码编写不符合 pep8 代码规范时,鼠标选择有问题的代码,就会自动弹出小灯泡,这个灯泡是有颜色之分的,如果是红灯泡,一般都是语法问题,如果不处理会影响代码运行。而如果是黄灯泡,就只是一个提示,提示你代码不规范等,并不会影响程序的运行。
虽然这个灯泡,是出于善意之举,但我认为它确实有点多余(可能是我个人没有使用它的习惯),要是语法错误会有红色波浪线提示。你可能会说灯泡不仅起到提示的作用,它还可以自动纠正代码,我个人感觉并没有人工校正来得效率,来得精准。
基于有时还会像知乎上这个朋友说的这样,会挡住我们的代码,会经常误点,这确实也是一个烦恼。
我研究了下,Pycharm (2018版本)里是有开关按钮的,将下图中的这个选项( Show intention bulb )取消勾选,就可以关闭这个功能。
10. 关闭碍眼的波浪线
下面我先给出了一小段代码示例,思考一下,为什么name,my_name 不会有波浪线,而 myname 和 wangbm 会有波浪线呢?
Pycharm 本身会实时地对变量名进行检查,如果变量名不是一个已存在的英文单词,就会出现一条波浪线,当一个变量里有多个单词时,Python 推荐的写法是用下划线来分隔(其他语言可能会习惯使用 驼峰式命名法 ,但 Python 是使用下划线),所以在 Pycharm 看来 my_name 是规范的,而 myname 会被当成是一个单词对待,由于它在单词库里并没有它,所以 myname 是不规范的。
每个人的变量命名习惯不一样,如何你在项目里大量使用了 myname 这种风格的变量命名方法,像下面这样(随便找了一段 cloudinit 的代码),是让人挺不舒服的,总有一种代码有 bug 的错觉。
那么如何关闭这个非语法级别的波浪线呢?很简单,它的开关就在你的右下角那个像 人头像 一样的按钮
然后选择 Syntax 级别的即可。同样一段代码,效果如下,干净了很多。
好了,本周的 PyCharm 使用技巧,就是这五个了,你学会了吗?
-END-
好文推荐,精彩不断
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Design Handbook
Baeck, Philippe de 编 / 2009-12 / $ 22.54
This non-technical book brings together contemporary web design's latest and most original creative examples in the areas of services, media, blogs, contacts, links and jobs. It also traces the latest......一起来看看 《Web Design Handbook》 这本书的介绍吧!