Terry J. Reedy <[email protected]> added the comment:
I think generically changing 'iterable' to 'iterable/unpackable' is wrong and
would engender more confusion than at present. Most uses of iteration have
nothing to do with multiple assignment target unpacking. Some minimal examples
resulting in "TypeError: 'int' object is not iterable", where this change would
be wrong, include
iter(1)
sorted(1)
for _ in 1: pass
What might be reasonable is to wrap iter(source) in multiple assignment target
code with (the C equivalent, if it exists, of) try-except and augment the
message before re-raising. The addition could be something explicit like "and
cannot be the source for multiple target assignment".
---
Camion, Steven gave you excellent advice about playing around with simplified
code. If you had split the multiple-operation error raising line,
for term, dgts in terms_generator(expected_precision):
into two simpler lines that each do less,
for value in terms_generator(expected_precision):
term, dgts = value
you would have likely have spent much less time looking in the wrong place.
Isolating possible exception sources is a very useful debugging tool.
----------
nosy: +terry.reedy
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue32259>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com