Ipython及ipdb使用技巧

Ipython 是一个 python 增强的交互式 shell,IPython 比 默认的thon shell 好用得多,支持变量自动补全,自动缩进,支持 bash shell 命令,内置了许多很有用的功能和函数。

安装

  • Ubuntu

    • 通过 sudo apt-get install ipython 安装

    • 通过 ipython 启动

  • 通过pip安装

    • pip install ipython 即可

Tab自动补全

在shell中输入表达式时,只要按下Tab键,当前命令控件中任何与输入的字符串相匹配的变量(对象、函数等)就会被找出来。

Tab补全

内省

在对象的前面或后面加上一个问号(?)就可以将有关该对象的一些通用信息显示出来。这就叫做对象的内省

  • 一个问号(?)显示该对象信息,包括Type,Docstring

  • 两个问号(??)若有将会显示该对象的源码Source

  • 一些字符串配以通配符(*)即可显示出所有与该通配符表达式相匹配的名称。

Ipython魔法

  • %run

  • %time, %timeit

  • %paste, %cpaste

  • %history

  • %autoreload

    • 执行代码前 ipython 会帮我们自动重载改动的模块

调试ipdb

当程序发生异常时,使用 %debug 魔法即可进入引发异常的那个栈帧 stack frame

  • ipdb使用技巧

    • u(p)进入上一个栈

    • d(own)进入下一个栈

    • h(elp) 显示ipdb帮助信息

    • a(rgs) 打印当前函数的参数

    • j(ump) 让程序跳转到指定的行数

    • l(ist) 可以列出当前将要运行的代码块

    • n(ext) 让程序运行下一行,如果当前语句有一个函数调用,用 n 是不会进入被调用的函数体中的

    • p(rint) 最有用的命令之一,打印某个变量

    • q(uit) 退出调试

    • r(eturn) 继续执行,直到函数体返回

    • s(tep) 跟 n 相似,但是如果当前有一个函数调用,那么 s 会进入被调用的函数体中

updatedupdated2017-12-192017-12-19