我收到了这个错误:ValueError: need more than 2 values to unpack
并被转储到 pdb 提示符(实际上,ipdb>
)。碰巧计算非常昂贵,我不想重复它。
函数调用看起来像:
x,y,z = f(q)
f(q)
鉴于我仍然有现场会议,有什么办法可以恢复将要返回的内容pdb
?
编辑:澄清一下,f(q)
计算量非常大,不能重复。
>>> def func():x,y,z=f()
...
>>> import dis
>>> dis.dis(func)
1 0 LOAD_GLOBAL 0 (f)
3 CALL_FUNCTION 0
6 UNPACK_SEQUENCE 3
9 STORE_FAST 0 (x)
12 STORE_FAST 1 (y)
15 STORE_FAST 2 (z)
18 LOAD_CONST 0 (None)
21 RETURN_VALUE
看看解包是如何工作的,看起来错误是在UNPACK_SEQUENCE
步骤中引发的,这意味着在存储任何值之前,所以我猜你无法恢复返回的值。
您应该能够发出一个简单的打印语句:
print f(q)