Benjamin Kaplan wrote:
On Thu, Dec 8, 2011 at 1:42 PM, Roy Smith <r...@panix.com> wrote:
(some,
 very,
 long,
 list,
 of,
 variable,
 names,
 to,
 get,
 the,
 stuff,
 unpacked,
 into) = function_that_should_return_a_14_tuple()

raises

ValueError: too many values to unpack

Quick, what's the bug?  Did I forget a variable on the LHS, or is my function returning 
more things than it should?  I know it's supposed to be 14, but I don't know which side 
is wrong.  Had it said "... expected 13, got 14", I would know immediately.


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."

~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to