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