每周分享五个 PyCharm 使用技巧(三)
文章首发于 微信公众号:Python编程时光
PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能。
一个每天都在使用的工具,如果能掌握一些高效的使用技巧,肯定会给我们的开发效率带来质的提升。今天我就来写一写我在平时开发中一直在用的,可以明显改善开发效率的使用技巧,一旦学会,受用一生。
这是本系列 PyCharm 的高效使用技巧的第一篇。按照惯例,本次还是分享 5 个。
本系列其他文章如下,若还没看的,你可以点击查阅
每周分享五个 PyCharm 使用技巧(一)
每周分享五个 PyCharm 使用技巧(二)
每周分享五个 PyCharm 使用技巧(三)
每周分享五个 PyCharm 使用技巧(四)
每周分享五个 PyCharm 使用技巧(五)
每周分享五个 PyCharm 使用技巧(六)
11. 一键进行代码性能分析
在 Python 中有许多模块可以帮助你分析并找出你的项目中哪里出现了性能问题。
比如,常用的模块有 cProfile,在某些框架中,也内置了中间件帮助你进行性能分析,比如 Django ,WSGI。
做为Python 的第一 IDE, PyCharm 本身就支持了这项功能。而且使用非常方便,小白。
假设现在要分析如下这段代码的性能损耗情况,找出到底哪个函数耗时最多
import time
def fun1():
time.sleep(1)
def fun2():
time.sleep(1)
def fun3():
time.sleep(2)
def fun4():
time.sleep(1)
def fun5():
time.sleep(1)
fun4()
fun1()
fun2()
fun3()
fun5()
点击 Run -> Profile '程序' ,即可进行性能分析。
运行完毕后,会自动跳出一个性能统计界面。
性能统计界面由Name、Call Count、Time(ms)、Own Time(ms) ,4列组成一个表格,见下图。
- 表头Name显示被调用的模块或者函数;Call Count显示被调用的次数;Time(ms)显示运行时间和时间百分比,时间单位为毫秒(ms)。
- 点击表头上的小三角可以升序或降序排列表格。
- 在Name这一个列中双击某一行可以跳转到对应的代码。
- 以fun4这一行举例:fun4被调用了一次,运行时间为1000ms,占整个运行时间的16.7%
点击 Call Graph(调用关系图)界面直观展示了各函数直接的调用关系、运行时间和时间百分比,见下图。
右上角的4个按钮表示放大、缩小、真实大小、合适大小;
- 箭头表示调用关系,由调用者指向被调用者;
- 矩形的左上角显示模块或者函数的名称,右上角显示被调用的次数;
- 矩形中间显示运行时间和时间百分比;
- 矩形的颜色表示运行时间或者时间百分比大小的趋势:红色 > 黄绿色 > 绿色,由图可以看出fun3的矩形为黄绿色,fun1为绿色,所有fun3运行时间比fun1长。
- 从图中可以看出Test.py直接调用了fun3、fun1、fun2和fun5函数;fun5函数直接调用了fun4函数;fun1、fun2、fun3、fun4和fun5都直接调用了print以及sleep函数;整个测试代码运行的总时间为6006ms,其中fun3的运行时间为1999ms,所占的时间百分比为33.3%,也就是 1999ms / 6006ms = 33.3%。
12. 使用Git做版本控制
按照如下提示点击 Git 仓库配置
接着输入仓库地址
点击 Test,测试连通性,会要求输入密码
若一切顺利,则会看到如下界面
测试连接成功后,点击 Clone 就可以克隆下来了。
对于以前使用 Git 命令来管理的,现在可以直接使用 PyCharm 的菜单栏来操作,这些功能已经可以满足大多数人的日常需求了,应该是够用了。
13 Tab轻松转空格
在团队协作中,你难免会动到别人编辑的文件,有的人喜欢做tab做缩进,有的人喜欢用四个空格做缩进。
但是在同一个Python文件模块里,tab 和 四个空格缩进两种风格是不能共存的。这就需要你按照该文件原来的缩进风格来进行编码,在 Pycharm 里,可以设置自动检测原文件的缩进风格来决定当你使用tab键缩进的时候,是TAB还是四个空格。
在图示位置打勾即可开启自动检测。
上面是对一个旧的 Python 模块进行修改时,如何决定当前编辑的缩进方式。
而对于新建模块,默认的缩进方式,是如何确定的?
如下图,若在 Use tab character
打上勾,则你新建一个 Python 后,就会使用 TAB 进行缩进,反之,则使用四个空格进行缩进。
14. 一次注册,永久激活
PyCharm 有分两个版本,一个是社区版(免费功能有限),一个是专业版(有一些增强功能),详细差异你可以参考这个图,一般来说,社区版用作学习用途是没有问题的。
如果需要使用专业版,网上也有一些注册服务器使用,非常方便,缺点是过一段时间,可能就会失效。这里有一种一劳永逸的方法,但可能仅对早期的 PyCharm 版本有效,可以实现永久激活(到 2099 / 2100年,一定意义上是永久了吧)。
经过我个人亲测,以下破解jar包,Windows 中在 2017.1.5 版本中有效,Mac OS 在2018.2.4 版本中有效。如果你在自己的版本中尝试无效,可以尝试切换至我的版本。
以下将分别以 Mac OS 和 Windows两个主流系统做演示。
第一步:
下载jar包: 此jar包的目的就是让截获截止时间并骗过 PyCharm;
Windows 点此下载 密码:lvyv
Mac OS 点此下载,密码:5o4s
第二步:
若是 Windows 系统,请找到并进入你的 PyCharm 安装启动目录(以我的为例):E:\Program Files\JetBrains\PyCharm 2017.1.5\bin
将第一步下载的 jar 包放入这个目录,并打开如下两个以 vmoptions
后缀结尾的文件:
添加如下这一行(请根据你的实际安装目录自行调整)
若是 Mac OS 系统,请找到并进入你的 Pycharm 安装启动目录(以我的为例)
将第一步下载的 jar 包放入这个目录
并打开如下一个以 vmoptions
后缀结尾的文件:
第三步:
随意填写个激活码,如果此前已经有写过,这步可直接跳过到第四步,如果没有写过,你就填这个吧。
点击:Help -> Register -> Activation Code
BIG3CLIK6F-eyJsaWNlbnNlSWQiOiJCSUczQ0xJSzZGIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiQUMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IklJIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUlMwIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiV1MiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEUE4iLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJSQyIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlBTIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiREMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJEQiIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9LHsiY29kZSI6IlJNIiwicGFpZFVwVG8iOiIyMDE3LTExLTIzIn0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTctMTEtMjMifSx7ImNvZGUiOiJDTCIsInBhaWRVcFRvIjoiMjAxNy0xMS0yMyJ9XSwiaGFzaCI6IjQ3NzU1MTcvMCIsImdyYWNlUGVyaW9kRGF5cyI6MCwiYXV0b1Byb2xvbmdhdGVkIjpmYWxzZSwiaXNBdXRvUHJvbG9uZ2F0ZWQiOmZhbHNlfQ==-iygsIMXTVeSyYkUxAqpHmymrgwN5InkOfeRhhPIPa88FO9FRuZosIBTY18tflChACznk3qferT7iMGKm7pumDTR4FbVVlK/3n1ER0eMKu2NcaXb7m10xT6kLW1Xb3LtuZEnuis5pYuEwT1zR7GskeNWdYZ0dAJpNDLFrqPyAPo5s1KLDHKpw+VfVd4uf7RMjOIzuJhAAYAG+amyivQt61I9aYiwpHQvUphvTwi0X0qL/oDJHAQbIv4Qwscyo4aYZJBKutYioZH9rgOP6Yw/sCltpoPWlJtDOcw/iEWYiCVG1pH9AWjCYXZ9AbbEBOWV71IQr5VWrsqFZ7cg7hLEJ3A==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9
第四步:
若是 Windows 系统,重启 PyCharm 后,查看激活信息:Help -> About
如果是 Mac OS 系统,重启 PyCharm 后,查看激活信息:PyCharm -> About PyCharm
另外,以上仅做交流和个人学习使用,请勿商用,有能力的朋友还是希望多支持正版!
15. 源码文档,快速预览
Ctrl + 鼠标左键 (Mac 上是:Command + 鼠标左键),可以实现函数跳转查看源码, 这几乎是每一个 PyCharmer 都会的一个惯用技巧。
这里再另外介绍两个类似的小技巧,快速 查看函数文档
和 预览源代码
。
在函数的开头处,使用三个引号 "
包含的内容,叫做函数文档 (DocString)。
在编写代码时,顺便写好函数的接口文档,是一个很好的编码习惯。它介绍了该函数的参数类型及说明,返回值类型及范例,写得好一点的还会写出 几个简单的 Example Usage 有助于理解使用。在这一点上,Flask 可以说做得相当好。这边随便截一个 Werkzeug 的例子。
假如我们在使用这个类的时候,忘记了这个用法,可以按住 Ctrl + q(Mac暂时未找到对应快捷键),在当前页面就可以快速预览 LocalStack 的接口文档。
同样的,如果你对这个类或者函数的代码逻辑感兴趣,也可以使用快速预览的方式在当前页面展示源代码。快捷键是:Ctrl + shift + i (Mac:Command + shift + i)。效果如下
如果 PyCharm 检测到的同名函数有多个,可以点这里进行选择查看
这两个快捷键比起使用 Ctrl + 鼠标左键 跳进源代码来说,更加方便,,就像微信小程序一样,用完即焚,不会新产生一个标签页,也不需要来回跳转页面。
本系列 30 个 PyCharm 小技巧全部更新完毕了,你可以点击顶部的超链接进行学习。
希望对你掌握和配置 PyCharm 会有帮助,想继续看文章的朋友,也可以关注我的公众号「Python编程时光」,所有的文章都会在那里首发,公众号里的文章我都经过精心的排版,阅读体验好。欢迎大家来订阅。
每周分享五个 PyCharm 使用技巧(三)的更多相关文章
- 每周分享五个 PyCharm 使用技巧(二)
这是 「PyCharm 技巧分享」系列的第二篇分享.由于上一篇文章得到了大家的一些赞同,所以今天又来给大家推荐一些我平时自己有用的小技巧,大家择需所取即可. 先声明下,并不保证对所有的人都是有帮助的, ...
- 每周分享五个 PyCharm 使用技巧(一)
PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌握一些高效的使用技巧,肯定会给我们的开发效率带 ...
- 每周分享五个 PyCharm 使用技巧(六)
大家好,今天我又来给大家更新 PyCharm 的使用技巧. 从今年3月24号开始一直到今天,将近四个月的时间.包括本篇,一共更新了6篇文章,每篇 5 个小技巧,总计 30 个. 这30个使用技巧,全部 ...
- 每周分享五个 PyCharm 使用技巧(四)
文章首发于 微信公众号:Python编程时光 PyCharm 是大多数 Python 开发者的首选 IDE,每天我们都在上面敲着熟悉的代码,写出一个又一个奇妙的功能. 一个每天都在使用的工具,如果能掌 ...
- 每周分享五个 PyCharm 使用技巧(五)
文章首发于 微信公众号:Python编程时光 大家好,这是本系列 PyCharm 的高效使用技巧的第五篇.按照惯例,本次还是分享 5 个. 本系列前四篇如下,若还没看的,你可以点击查阅 21. 随处折 ...
- NetAnalyzer笔记 之 五 一些抓包技巧分享(不定期更新)
[创建时间:2016-03-12 10:00:00] [更新时间:2016-05-21 10:00:00] NetAnalyzer下载地址 前一段时间应为工作关系,NetAnalyzer笔记系列已经很 ...
- 你有哪些想要分享的 PyCharm 使用技巧?
作者:Light Lin链接:https://www.zhihu.com/question/37787004/answer/75269463来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...
- 经验分享:多屏复杂动画CSS技巧三则
当下CSS3应用已经相当广泛,其中重要成员之一就是CSS3动画.并且,随着CSS动画的逐渐深入与普及,更复杂与细腻的动画场景也如雨后春笋般破土而出.例如上个月做的「企业QQ-新年祝福」活动: 感谢sh ...
- PyCharm常用技巧集合
PyCharm常用技巧集合 一.添加或者修改文件模板 File>settings>Editor>File and Code Templates>Python Script 你可 ...
随机推荐
- 在windows上编译chrome浏览器Building Chromium for Windows
web端用webRTC实现的一对一视频,互动直播和会议.https://github.com/starrtc/android-demo Chromium requires Visual Studio ...
- Android利用canvas画各种图形
Android利用canvas画各种图形(点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形) 本文链接:https://blog.csdn.net/rhljiayou/article/det ...
- Flutter 目录结构介绍、入口、自定义 Widget、MaterialApp 组件、Scaffold 组件
Flutter 目录结构介绍 文件夹 作用 android android 平台相关代码 ios ios 平台相关代码 lib flutter 相关代码,我们主要编写的代 码就在这个文件夹 test ...
- PPT插件(islide)
https://www.islide.cc/features iSlide 主要功能模块 一键优化 将PPT中不规则的字体,段落,色彩,参考线布局,风格样式等一键化全局统一设置,构建专业和规范. ...
- 查询数据,从链接地址中爬取文章内容jsoup
查询数据,从链接地址中爬取文章内容 protected void doGet(HttpServletRequest request, HttpServletResponse response) thr ...
- ubuntu 防火墙打开关闭
1.查看防火墙状态 sudo ufw status 2.打开防火墙 sudo ufw enable 3.关闭防火墙 sudo ufw disable
- idea的一些常用快捷键
快捷键 1.进入实现方法的快捷键 Ctrl + Alt + B Ctrl + Alt + 鼠标点击 2.自动给方法添加注释的快捷键 输入/**,然后回车 3.删除一行 CTRL + Y / CTRL ...
- Python - Django - 模板语言之自定义过滤器
自定义过滤器的文件: 在 app01 下新建一个 templatetags 的文件夹,然后创建 myfilter.py 文件 这个 templatetags 名字是固定的,myfilter 是自己起的 ...
- PhpStorm文本选择范围的纵向起始位置可选
ide一般都有这个功能. Alt+Shift+insert开启这个功能,使用效果如下,红色是默认选择的范围,绿色是我们想要的
- 解决no module named setuptools
To install setuptools on Debian: sudo apt-get install python-setuptools For Python 3.x: sudo apt-get ...