[Python-ideas] How assignment should work with generators?
Paul Moore
p.f.moore at gmail.com
Mon Nov 27 07:39:43 EST 2017
On 27 November 2017 at 12:31, Kirill Balunov <kirillbalunov at gmail.com> wrote:
> As I can see at the moment, these cases should behave differently:
>
>>>> x, y = [1,2,3,4] # must raise ValueError
>>>> x, y = iter([1,2,3,4]) # should work
>
> But at the same time, it violates current situation. So maybe, as you have
> said we need special syntax. I will think about it.
I would find this confusing. Consider where you don't have literals:
def f(vals):
x, y = vals
data = [1,2,3,4]
f(data)
data = iter(data)
f(data)
Having the two calls behave differently would be a recipe for errors
as someone refactors the calling code.
Paul
More information about the Python-ideas
mailing list