[Python-Dev] class name spaces inside an outer function (original) (raw)
Benjamin Peterson benjamin at python.org
Sun Apr 28 03:38:08 CEST 2013
- Previous message: [Python-Dev] class name spaces inside an outer function
- Next message: [Python-Dev] class name spaces inside an outer function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
2013/4/27 Nick Coghlan <ncoghlan at gmail.com>:
On 28 Apr 2013 04:30, "Ethan Furman" <ethan at stoneleaf.us> wrote:
I filed bug http://bugs.python.org/issue17853 last night. If somebody could point me in the right direction (mainly which files to look in), I'd be happy to attempt a patch. Hmm, interesting challenge. A key part of the problem is that the 3.x compiler assumes there's no way to inject names it doesn't know about into code inside a function - we missed the fact that you could still do it with a nested class and a metaclass prepare method.
That's not the problem. You can't inject names dynamically into a function scope with variables in a class scope, since nothing closes over them.
I suspect resolving it sensibly will require a new opcode that tries a local-only load and then falls back to loading from a cell rather than from a global/builtins lookup.
Yes.
-- Regards, Benjamin
- Previous message: [Python-Dev] class name spaces inside an outer function
- Next message: [Python-Dev] class name spaces inside an outer function
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]