在我有的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
命令之一之间存在名称冲突。有什么办法吗?
ipdb> somedata = {'a':1, 'b': 2}
ipdb> !list(somedata.keys())
['a', 'b']
!
将覆盖所有pdb
命令。
资料来源: https://github.com/gotcha/ipdb/issues/106:
在pdb 中,似乎你可以像转换一样使用 C。它可能在iPython中类似。
你能试试吗:
ipdb> res = (list) (some_data)