Python IDE:PyCharm中的那些实用功能-阿里云开发者社区

开发者社区> -开发者助手-> 正文

Python IDE:PyCharm中的那些实用功能

简介: 最近我从一个好友那听说了PyCharm以及它新的免费社区版logr。我这个朋友用Eclipse也很长时间了,对PyCharm也是赞不绝口,所以我决定至少在家办公的时候试着用用PyCharm。目前为止,我已经深深的喜欢上了它,甚至于在日常工作时也用PyCharm(社区版采用Apache2授权)。
+关注继续查看

到目前为止,我用Eclipse已经有一些年头了,大部分的时间都是用来写Python(安装Pydev插件)以及C++(安装CDT插件)。


最近我从一个好友那听说了PyCharm以及它新的免费社区版logr。我这个朋友用Eclipse也很长时间了,对PyCharm也是赞不绝口,所以我决定至少在家办公的时候试着用用PyCharm。目前为止,我已经深深的喜欢上了它,甚至于在日常工作时也用PyCharm(社区版采用Apache2授权)。


以下我将会介绍一些在我在使用PyCharm时感到惊奇的一些事情。


声明

我无意批评Eclipse或者PyDev,我用了它们很多年,它们很棒!请记住,这是我的个人经验,你的或许有所不同。


实时比较

PyCharm 对一个文件里你做的改动保持实时的跟踪,通过在编辑器的左侧栏显示一个蓝色的标记。

image.png

这一点非常方便,我之前一直是在Eclipse里面用命令“Compare against HEAD” 来比较一个文件前后的改动。

在PyCharm中,你可以对你的改动一览无余。同时,点击那个标记,会显示出之前的内容以及一个工具栏:

image.png

你可以很容易地回滚这些改动,在一个详尽的对话框中查看这些改动或是将之前的文本粘贴到剪切板上。


提交时的比较预览

在Eclipse 中,当你提交改动时,会有一个提交对话框向你展示将要被提交的文件列表。

你可以双击其中任意一项来查看改动的对比:这时候,如果你看到代码里一些想修改的地方(比如一个拼错的单词,一段遗漏的文档,等等),那可就不爽了:你必须关闭所有的东西(包括带有你精心写好的提交注释的提交框),去找到那处惹人烦的代码,改正,然后从头再来一遍。

PyCharm 有同样的特性,但是你的改动是可编辑的。我简直不能再去强调可以当场修正那些错误有多么棒啦!

image.png

在提交过程中,我可以很容易地修复像上面那些类似的拼写错误。

一个额外好处是,无论你因为何种原因关闭了提交对话框,当再次尝试提交时,它会保留你刚才填写的那些提交注释。


提交时检查

在提交过程中,我们还可以在实际提交前执行其他一些选项,像“优化导入(排序并移除未使用过的导入)“,检查变动集合中的待完成项等等。

image.png

一个有意思的地方是”执行代码分析“那一项。。。


代码审查

你可以让PyCharm在一个文件,目录或整个项目里执行“代码审查”操作。它会在无需实际执行程序的情况下,

找出存在问题以及相应的改进办法,比如类型检查,可静态的方法,违反代码规范等等问题。

正如在上一节中解释过的,这也可以在提交时在发生改动的文件中自动完成。这是一个文件一次审查之后的结果:

image.png

对于其中一些审查结果来说,你还可以应用一个修复建议。例如,对于“Function call can be replaced with set literal()”这一建议,我们可以选择相应的选项来修复。

PyCharm 会将这句:

extensions = set(['.avi', '.mp4', '.mpg', '.mkv'])

自动替换为:

extensions = {'.avi', '.mp4', '.mpg', '.mkv'}

你可以关闭任何你不希望的审查,包括在项目一级。


重构

我一直在试图重命名一个模块,可在菜单项里一直找不到那一项。。。F2也无济于事。

突然我注意到文件子菜单下面的”重构/重命名“一项,就想。。。会是它吗?果然就是!

在你重命名一个模块时,PyCharm会询问你是否需要自动修改所有与之关联的项目。有福了!

还有很多其他的重构项目,但目前为止我还没有机会一一尝试。


关于过时代码的提示以及改进建议

PyCharm可以告诉你代码里面过时的结构块,并且提出一些改进建议。比如,我有像下面一段这样的代码:

with nested(open(filename1), open(filename2)) as (f1, f2):

 <代码块>


PyCharm会明显的标注出nested:

image.png

我用的是Python2.7,事实上你可以使用嵌套上下文管理器,但是,唉,我还得支持python的一些老版本,就保留了nested。

但PyCharm提醒了我,这个事情本身还是很酷的。


任务+特性 分支

如同Eclipse一样(需要Mylin支持),PyCharm也支持基于任务的工作流(包括任务感知的上下文)。

然而PyCharm本身自带了很多直接可用的连接器(GitHub,Mantis,Jira,Bugzilla,等等)。

而且,当你开启一项任务时,它会询问你是否想要创建那个任务的一个特性分支,分支的名字可以配置。

image.png

这就避免了必须手动创建一个新的分支,而这个操作确实挺繁琐的(拿到任务的ID,选择名称,等等)。

这个是加分项。


快速

我观察到PyCharm在执行代码的自动完成时扫瞄代码的速度要远快于Eclipse,而且还不打断你当前的工作。

当你想保存一个文件时,Eclipse会阻止你这么做因为它正在后台执行一个任务,这有多惹人烦。。。


快速查看文档

当你把光标挪到一个函数、方法,类或者别的什么上的时候,你会得到一个选项来浏览”快速文档“。看一眼:

image.png

正如你看到的,它会用一种赏心悦目的格式展示方法的文档说明,还从代码使用说明中提示了参数的类型。。。即使该函数没有对应的文档说明,你还是会得到像下面这样的一个说明:

image.png

很好!


Docutils 支持

PyCharm 还包括了对于doctils的一流支持,这让它很容易从集成开发环境中直接再生成文档。

另一方面,它还包括了一个非常好的富文本(译者注:ReST即reStructuredTexteditor)编辑器(比Eclipse的IMHO好用的多):

image.png


完善的插件系统

跟据我的使用经验,在Eclipse里面安装插件是件挺痛苦的事情:

很难找到你想要去的地方(提示: 帮助/安装新软件。。。); 你没有一个单一的索引,所以你得去网上去找那些插件源; 系统有时会因为库的依赖问题而崩溃,结果我就没装上那些我想要的插件(工作中还有其他人也同样遇到这个问题,最后不得不放弃); PyCharm的插件体验则要流畅地多。

首先,它位于一个你认为它有可能会存在的地方:就在”设置”下面的一项:

image.png

你可以很容易地浏览插件:

image.png

我快速安装了一个标记编辑器(和ReST一样),一个临时存放代码片段的插件,可以让我直接从选择的文本中快速地剪贴,并且预览代码,和SublimeText类似,还用一个漂亮的代码外观。


结语

目前为止就这些了。我会向我的朋友尽力展示一切我认为“看这有多酷”的事情。我使用PyCharm的时间很短,如果我发现还有更多有趣的事情值得再写一篇发表的话,我会继续写。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
10052 0
不可不知的NAT网关的防火墙功能
NAT网关的基于状态的SNAT功能是可以对内部服务器提供安全防护功能的,正确的使用NAT网关可以构筑更安全的云上网络。
3557 0
IntelliJ IDEA 的智能编码功能
IntelliJ IDEA有一个强大的编辑器,并始终帮助您创建无差错的应用程序。IDE有许多智能的功能,让我们看看最重要的几个。 代码补全 代码补全通过关联上下文的情况,节省您的时间。主要有两种类型的IntelliJ IDEA的代码补全:基础(按Ctrl+Space)和智能(按Ctrl+Shift+Space)。
627 0
【开发】IDEA的Diagram这些功能你了解吗?
最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到Servlet部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟。
1664 0
Python实现简单爬虫功能
Python实现简单爬虫功能
1823 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
13865 0
2450
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载