IPython与Python的区别

本网站用的阿里云ECS,推荐大家用。自己搞个学习研究也不错
IPython的开发者吸收了标准解释器的基本概念,在此基础上进行了大量的改进,创造出一个令人惊奇的工具。在它的主页上是这么说的:“这是一个增强的交互式Python shell。”具有tab补全,对象自省,强大的历史机制,内嵌的源代码编辑,集成Python调试器,%run机制,宏,创建多个环境以及调用系统shell的能力。

1)IPython与标准Python的最大区别在于,Ipython会对命令提示符的每一行进行编号。如下图:

IPython与Python的区别

IPython与Python的区别

对比两个例子,其输出变量值似乎相同,其实仍有差别。print语句使用非正式的(unofficial)字符串表达式,而简单变量名(bare variable name)使用了正式的(official)字符串表达式。在处理自定义类而不是内置类时,这种差异会体现得非常明显。
In [10]: class DoubleRep(object): 
….: def __str__(self): 
….: return ‘Hi, I’m a __str__’ 
….: def __repr__(self): 
….: return ‘Hi, I’m a __repr__’ 
….: 
….: 
In [11]: dr = DoubleRep() 
In [12]: print dr 
Hi, I’m a __str__ 
In [13]: dr 
Out[13]: Hi, I’m a __repr__

2)tab补全
作为例子,我们先引入 sys 模块,之后再输入 sys. (注意有个点),此时按下 tab 键,IPython 会列出所有 sys 模块下的方法和属性。

IPython与Python的区别

接着上面的例子,我们输入 sys?再回车,这样会显示出 sys 模块的 docstring及相关信息。很多时候这个也是很方便的功能。

IPython与Python的区别

3)历史机制
hist可以快速查看那些输入的历史记录。
hist -n可以快速查看并去掉历史记录中的序号,这样你就可以方便的将代码复制到一个文本编辑器中。
一个更简单的方法是edit加Python列表的切片(slice)语法:
edit 4:7 % 将第4,5,6,7句代码导出到编辑器

4)断点调试:如果你的程序是由命令行开始执行的,即在命令行下输入 python foo.py(大部分 Python 程序都是),那么你还可以利用 IPython 在你的程序任意地方进行断点调试。
在你程序中任意地方,加入如下语句:
from IPython.Shell import IPShellEmbed
IPShellEmbed([])()
注意:最近 IPython 发布了 0.11 版本,各方面变化都非常大,API 也经过了重新设计。如果你使用的是 0.11 那么上面两行对应的是这样的:
from IPython import embed
embed()
再和平常一样运行你的程序,你会发现在程序运行到插入语句的地方时,会转到 IPython 环境下。你可以试试运行些指令,就会发现此刻 IPython 的环境就是在程序的那个位置。你可以逐个浏览当前状态下的各个变量,调用各种函数,输出你感兴趣的值来帮助调试。之后你可以照常退出 IPython,然后程序会继续运行下去,自然地你在当时 IPython 下执行的语句也会对程序接下来的运行造成影响。
这个方法是在这里(http://lukeplant.me.uk/blog/posts/exploratory-programming-with-ipython/)看到的。想象一下,这样做就像让高速运转的程序暂停下来,你再对运行中的程序进行检查和修改,之后再让他继续运行下去。这里举一个例子,比如编写网页 bot ,你在每取回一个页面后你都得看看它的内容,再尝试如何处理他获得下一个页面的地址。运用这个技巧,你可以在取回页面后让程序中断,再那里实验各种处理方法,在找到正确的处理方式后写回到你的代码中,再进行下一步。这种工作流程只有像 Python 这种动态语言才可以做到。

CentOS 6.4 中IPython如何启动Qt控制台和NoteBook?  http://www.linuxidc.com/Linux/2014-04/100037.htm

CentOS 5安装IPython  http://www.linuxidc.com/Linux/2014-04/100038.htm

CentOS和RHEL安装 IPython 0.11  http://www.linuxidc.com/Linux/2014-04/100041.htm

CentOS6.5安装Python2.7.8以及安装IPython  http://www.linuxidc.com/Linux/2015-01/111092.htm

IPython 的详细介绍请点这里
IPython 的下载地址请点这

未经允许不得转载:演道网 » IPython与Python的区别

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册