ValueError: too many values to unpack (expected 2)报错原因:用于接收返回值的变量多于函数本应该返回的值。在含有yield的函数中有这样的报错,可能是因为函数本应该返回多个值,但是调用函数值后直接赋给了一个变量。
例如:
def test(tli=[1, 2, 3]]):
for i in tli:
yield i, tli
c = test() # c其实是一个generater的类型,而不是返回值
a, b = test() # 报错:ValueError: too many values to unpack (expected 2)
for a, b in test(): # 正确用法
pass