On 26-06-18 11:22, Steven D'Aprano wrote: > On Tue, 26 Jun 2018 10:20:38 +0200, Antoon Pardon wrote: > >>> def test(): >>> a = 1 >>> b = 2 >>> result = [value for key, value in locals().items()] >>> return result > [...] > >> I would expect an UnboundLocalError: local variable 'result' referenced >> before assignment. > Well, I did say that there's no right or wrong answers, but that > surprises me. Which line do you expect to fail, and why do you think > "result" is unbound?
I would expect the third statement to fail because IMO we call the locals function before result is bound. But result is a local variable so the locals function will try to reference it, hence the UnboundLocalError. -- Antoon Pardon. -- https://mail.python.org/mailman/listinfo/python-list