Tab键自动完成:
1.变量补全
2.对象方法、属性补全
3.模块方法、属性补全(Ipython默认隐藏以”_”开头的方法属性,如果想显示需要手动设置配置文件)
4.路径补全(在字符串中也可以)
对象内省(object introspection)
如果该对象是一个函数或实例方法,则其docstring(如果有)也会显示:
使用??显示源代码(如果可能的话):
?的其他用法:
用%run命令运行脚本:
脚本:
def sum(a,b,c):
return a + b + c
a = 1
b = 2
c = 3
result = sum(a,b,c)
测试:
中断正在执行的代码
Ctrl-C
粘贴代码块执行
%paste:Windows下复制代码后在命令行输入%paste直接运行
%cpaste:Windows下复制代码后输入%cpast,右键粘贴,再输入’–’运行
IPython快捷键:
常用的魔术命令:
魔术命令默认是可以不带百分号使用的,只要没有定义与其同名的变量即可。这个技术叫作automagic,可以通过%automagic打开或者关闭。
matplotlib集成与pylab模式
ipython –pylab
1.IPython会启用默认GUI后台集成,这样matplotlib绘图窗口创建就没问题了(不然代码会一直卡在这里)
2.Numpy和matplotlib的大部分功能会被引入到最顶层的interactive命名空间
输入变量和输出变量
输入的文本被保存在_ix中,其中x是输入的行号。每个输入变量都有一个对应的输出变量_x.
记录输入输出日志:
%logstart
与操作系统交互
目录书签系统,%bookmark
交互式调试器
使用%debug进行调试
1.在运行异常代码后,输入%debug进入最底层发生异常的栈帧
2.u为进入上级栈帧,d为进入下级栈帧
使用%run -d进入调试状态
一些调试功能函数:
import sys
#放在想要调试的上面一行,可以让程序在此停止运行并进入调试状态,相当于设置断点并且让程序在此进入调试
def set_trace():
from IPython.core.debugger import Pdb
Pdb(color_scheme='Linux').set_trace(sys._getframe().f_back)
def debug(f,*args,**kwargs):
from IPython.core.debugger import Pdb
pdb = Pdb(color_scheme='Linux')
return pdb.runcall(f,*args,**kargs)
db.set_trace()放入的地方
def calling_things():
works_fine()
db.set_trace()
throws_an_exception()
测试代码执行时间:%time和%timeit
%time一次执行一条语句,然后报告总体运行时间
%timeit,多次执行,产生平均值
基本性能分析 %prun和%run -p
python -m cProfile -s cumulative xxxx(运行文件名),分析文件
或者用%run -p -s cumulative xxxx魔术命令
%prun -l 7 -s cumulative add(1,2),运用魔术命令进行性能分析,分析语句
逐行分析函数性能
%lprun -f func1 -f func2
需要安装line_profiler库,功能很强大,现在没装,mark一下
自定义类友好输出,重写repr()方法: