On 2018-06-23 23:08, Jim Lee wrote: >>> On 06/23/2018 10:03 PM, Steven D'Aprano wrote: >>>> def test(): >>>> a = 1 >>>> b = 2 >>>> result = [value for key, value in locals().items()] >>>> return result >>>> >>>> what would you expect the result of calling test() to be? >>> >>> I would *expect* [1, 2, None], though I haven't actually tried >>> running it. >> Interesting. Where do you get the None from? > > There are three locals: a, b, and result.
However at the time locals() is called/evaluated, "result" hasn't yet been created/defined, so I wouldn't expect to see any representation of "result" in the return value. If it existed before the locals() call, I would expect to see the value it had before the call: def test() a = 1 b = 2 result = "Steven" result = [value for key, value in locals().items()] return result test() # return [1, 2, "Steven"] -tkc -- https://mail.python.org/mailman/listinfo/python-list