Misleading error message of the day

Ethan Furman ethan at stoneleaf.us
Thu Dec 8 15:09:11 EST 2011


Benjamin Kaplan wrote:
> On Thu, Dec 8, 2011 at 2:09 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
>> Benjamin Kaplan wrote:
>>> If the RHS was a tuple or a list, yes you could know immediately. But
>>> unpacking works with any iterable, so it probably doesn't special-case
>>> lists and tuples. Iterables don't have a size- they just keep going
>>> until StopIteration is raised. So in EVERY SINGLE CASE, you would get
>>> "expected n args, got n+1" even if the iterable would return 24 items
>>> instead of 14, or would never stop returning items.
>>
>> Not so.  There could be fewer, in which you could see "expected 13 args, got
>> 7."
>>
> 
> You mean like this?
> 
>>>> a,b,c = ['a','b']
> Traceback (most recent call last):
>   File "<stdin>", line 1, in <module>
> ValueError: need more than 2 values to unpack

This is still not as helpful as this would be:

ValueError: need 3 values, received 2

~Ethan~



More information about the Python-list mailing list