函数yield报错ValueError: too many values to unpack (expected 2)

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

你可能感兴趣的:(python,python)