- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试向服务器发出 http 请求并检查我返回的内容。但是,当我尝试使用 ipdb
浏览 HTTPResponse 对象
时,我不断收到 *** Oldest frame
并且我无法运行任何功能在我应该能够运行的对象上。这是用于获取的代码块,以及 ipdb
输出:
代码块:
for acc in sp_lost:
url = 'http://www.uniprot.org/uniprot/?query=mnemonic%3a'+acc+'+active%3ayes&format=tab&columns=entry%20name'
u = urllib.request.urlopen(url)
ipdb.set_trace()
ipdb 输出:
ipdb> url
'http://www.uniprot.org/uniprot/?query=mnemonic%3aSPATL_MOUSE+active%3ayes&format=tab&columns=entry%20name'
ipdb> u
*** Oldest frame
ipdb> str(u)
'<http.client.HTTPResponse object at 0xe58e2d0>'
ipdb> type(u)
<class 'http.client.HTTPResponse'>
ipdb> u.url
*** Oldest frame
ipdb> u.url() # <-- unable to run url() on object...?
*** Oldest frame
ipdb>
*** Oldest frame
是什么意思,我怎样才能把这个对象变成更有用的东西,我可以在上面运行适当的函数?
最佳答案
u
是遍历堆栈帧的 PDB 命令。您已经处于“最上层”框架中。 help u
会告诉你更多相关信息:
u(p)
Move the current frame one level up in the stack trace
(to an older frame).
该命令与d(own)
和w(here)
密切相关:
d(own)
Move the current frame one level down in the stack trace
(to a newer frame).
w(here)
Print a stack trace, with the most recent frame at the bottom.
An arrow indicates the "current frame", which determines the
context of most commands. 'bt' is an alias for this command.
如果要打印变量 u
,请在其前面加上 !
以使其不被调试器解释为调试命令:
!u
!u.url
或者使用print()
:
print(u)
从 help pdb
输出:
Commands that the debugger doesn't recognize are assumed to be Python statements and are executed in the context of the program being debugged. Python statements can also be prefixed with an exclamation point ('!').
Oldest frame
是堆栈中程序开始的帧;它是最古老的; Newest frame
,堆栈的另一端,是 Python 正在执行代码的地方,也是当前执行的框架,如果您点击 c(ontinue)
,Python 将继续执行> 命令。
一个带有递归函数的小演示:
>>> def foo():
... foo()
...
>>> import pdb
>>> pdb.run('foo()')
> <string>(1)<module>()
(Pdb) s
--Call--
> <stdin>(1)foo()
(Pdb) s
> <stdin>(2)foo()
(Pdb) s
--Call--
> <stdin>(1)foo()
(Pdb) s
> <stdin>(2)foo()
(Pdb) s
--Call--
> <stdin>(1)foo()
(Pdb) w
/Users/mj/Development/Libraries/buildout.python/parts/opt/lib/python2.7/bdb.py(400)run()
-> exec cmd in globals, locals
<string>(1)<module>()
<stdin>(2)foo()
<stdin>(2)foo()
> <stdin>(1)foo()
(Pdb) u
> <stdin>(2)foo()
(Pdb) u
> <stdin>(2)foo()
(Pdb) u
> <string>(1)<module>()
(Pdb) u
> /Users/mj/Development/Libraries/buildout.python/parts/opt/lib/python2.7/bdb.py(400)run()
-> exec cmd in globals, locals
(Pdb) u
*** Oldest frame
关于python - ipdb中的 '*** Oldest frame'是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17727993/
我已经花了一段时间研究这个问题,但还没有找到答案,而且我知道一种具有各种功能的 40 多年历史的语言可能会做到这一点。 我正在寻找一种只能容纳 500 个整数的数据结构。我需要能够将其中的最大整数与给
我有一个抽屉导航菜单(只有几个项目)调用切换 fragment ,像这样: FragmentTransaction trans = fragmentManager .begi
我想查找最旧的目录(在目录内),然后将其删除。我正在使用以下内容: rm -R $(ls -1t | tail -1) ls -1t | tail -1 确实给了我最旧的目录,问题是它没有删除目录,而
如何使用 SQL 按最早的顺序对结果进行排序?我正在使用 unix 时间戳。 谢谢。 最佳答案 最早的 UNIX 时间戳是最小的时间戳,因此您要ORDER BY my_timestamp_column
我正在尝试向服务器发出 http 请求并检查我返回的内容。但是,当我尝试使用 ipdb 浏览 HTTPResponse 对象 时,我不断收到 *** Oldest frame 并且我无法运行任何功能在
我不明白为什么需要将“||0 ”与oldest.years一起使用。简单地使用oldest.years 还不够吗?此代码段用于获取经验丰富的飞行员。 var pilots = [ { id
我试图找到一种方法来获取最旧的 created_at 值以获取类中最旧的对象,因此我可以稍后对其进行操作。 我试图将所有项目添加到数组中,然后获取最旧的值,然后使用 .where 事件记录方法将其转换
我在任何地方都找不到这个问题,所以这是给下一个人的。 不知何故,我的 vim 是高度定制的,有大量插件,比我想调试的要复杂得多,它间歇性地陷入一种状态,如果我点击“u”,它会说“已经是最旧的变化”。当
我希望提高我的查询性能/或更高效的查询设计,以获取 mysql 表中每组的最小值、最大值和计数。 我需要的输出是: +---------+----------+----------+-----+ |
我有一排照片要放在摄影网站的主页上。摄影师倾向于一次上传几十张照片,这意味着编辑选择最佳上传的照片很可能会将同一摄影师的几张照片一个接一个地放入队列中。但我们不希望一位摄影师连续几个小时拥有主页。 目
我如何在一个语句中删除最旧的存储(比如最旧的 5 个存储)而不是像这样做: git stash drop stash@{3} git stash drop stash@{4} git stash dr
为什么 Solr 在指定这些参数时首先返回“最旧”的记录。 您可能知道这些主要用于“分页”目的。 如果我选择每页 10 行,并且起始设置为 0,这意味着在我看来应该显示最新的 10 条记录。但是,So
我是一名优秀的程序员,十分优秀!