1

我收到了这个错误:ValueError: need more than 2 values to unpack并被转储到 pdb 提示符(实际上,ipdb>)。碰巧计算非常昂贵,我不想重复它。

函数调用看起来像:

x,y,z = f(q)

f(q)鉴于我仍然有现场会议,有什么办法可以恢复将要返回的内容pdb

编辑:澄清一下,f(q)计算量非常大,不能重复。

4

2 回答 2

1
>>> 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步骤中引发的,这意味着在存储任何值之前,所以我猜你无法恢复返回的值。

于 2013-04-25T22:07:19.573 回答
0

您应该能够发出一个简单的打印语句:

print f(q) 
于 2013-04-25T22:07:12.730 回答