在 ipdb 会话中如何使用 list()?
How to use list() when in an ipdb session?
在 Python 3.5.2 脚本中,例如,
import ipdb
ipdb.set_trace()
口译员点击这些行并让我进入 ipdb
会话。可以理解,与 iPython 解释器会话相比,ipdb
的功能有限(例如,没有魔法命令)。但是,我惊讶地发现某些 Python 内置函数不起作用,即 list()
.
ipdb> some_data
<zip object at 0x7f416e820388>
ipdb> list(some_data)
*** Error in argument: '(some_data)'
ipdb> list([])
*** Error in argument: '([])'
我猜内置函数 list()
和其中一个 ipdb
命令之间存在名称冲突。有什么解决办法吗?
在 pdb 中,您似乎可以使用类似 C 的转换。在iPython.
中大概是类似的
你能试试吗:
ipdb> res = (list) (some_data)
ipdb> somedata = {'a':1, 'b': 2}
ipdb> !list(somedata.keys())
['a', 'b']
!
覆盖所有 pdb
命令。
在 Python 3.5.2 脚本中,例如,
import ipdb
ipdb.set_trace()
口译员点击这些行并让我进入 ipdb
会话。可以理解,与 iPython 解释器会话相比,ipdb
的功能有限(例如,没有魔法命令)。但是,我惊讶地发现某些 Python 内置函数不起作用,即 list()
.
ipdb> some_data
<zip object at 0x7f416e820388>
ipdb> list(some_data)
*** Error in argument: '(some_data)'
ipdb> list([])
*** Error in argument: '([])'
我猜内置函数 list()
和其中一个 ipdb
命令之间存在名称冲突。有什么解决办法吗?
在 pdb 中,您似乎可以使用类似 C 的转换。在iPython.
中大概是类似的你能试试吗:
ipdb> res = (list) (some_data)
ipdb> somedata = {'a':1, 'b': 2}
ipdb> !list(somedata.keys())
['a', 'b']
!
覆盖所有 pdb
命令。