一直以来,很喜欢方便而强大的ipython调试python,但始终没有机会仔细看高版本的手册,今天偶然在这里 看到一个调试单独函数的小技巧,顺便浏览了下ipython主站的文档,记录以下。 一般我有个函数要调试,我会在想要的位置插入一个 ipdb的断点。python
def oauth(): ''' 测试 oauth 功能 ''' import ipdb; ipdb.set_trace() appid = u"abc" r_url = u"http://www.baidu.com/" scope = u"snsapi_base" url = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=%s' 'APPID&redirect_uri=%s&response_type=code&scope=%s&' 'state=STATE#wechat_redirect' % (appid, r_url, scope)如
能够经过设置一个自定义的函数api
def debug(f, *args, **kwargs): from IPython.core.debugger import Pdb pdb = Pdb(color_scheme='Linux') return pdb.runcall(f, *args, **kwargs)
实现 debug(oauth)
的效果app
$cd `ipython locate profile`/startup/
创建一个tool.py文件,内容以下:函数
#!/usr/bin/env python # -*- coding: UTF-8 -*- 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, **kwargs)
简单解释一下测试