New submission from Quentin Peter <qpe...@bluewin.ch>:
When both namespace arguments are given to exec, function definitions fail to capture closure. See below: ``` Python 3.8.6 (default, Oct 8 2020, 14:06:32) [Clang 12.0.0 (clang-1200.0.32.2)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> exec("a = 1\ndef f(): return a\nprint(f())") 1 >>> exec("a = 1\ndef f(): return a\nprint(f())", {}) 1 >>> exec("a = 1\ndef f(): return a\nprint(f())", {}, {}) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<string>", line 3, in <module> File "<string>", line 2, in f NameError: name 'a' is not defined >>> ``` ---------- messages: 409038 nosy: qpeter priority: normal severity: normal status: open title: closure fails in exec when locals is given type: crash versions: Python 3.8 _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue46153> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com