当前位置: 代码迷 >> 综合 >> python3 ValueError: too many values to unpack (expected 2)
  详细解决方案

python3 ValueError: too many values to unpack (expected 2)

热度:50   发布时间:2023-12-15 17:17:05.0

看似很简单的一个错误,但一时间竟然难以找到答案:

代码:

aaa, bbb = foo(xx=yy,zz=........aa=bb, cc=dd, ee=ff)

报错:

Traceback (most recent call last):File "/home/xxx/test/111111.py", line 110, in <module>aa=bb, cc=dd, ee=ff)
ValueError: too many values to unpack (expected 2)

# 引起报错的函数foo参数较多,代码中已经用了换行。这样导致报错确实是提示了出错的位置,但是提示的不准确,其实就是foo这个函数调用错误,跟报错所指示的具体参数 aa=bb, cc=dd, ee=ff)可能无关。需要根据报错仔细定位。

原因:

经过对foo函数内容进行分析,根据当前设置的参数,调用foo之后只有1个返回值。代码中却设置了aaa和bbb两个变量来接收返回值,这样当然不够unpack的啦!

解决:调用之后返回几个值,就用几个变量进行接收。所以,我这里改成下面这样就好了:

aaa = foo(xx=yy,zz=..... ...aa=bb, cc=dd, ee=ff)

 

  相关解决方案