When using a custom classdict to implement a DSL or use in the body of a class 
definition, from what I can tell by experiment, the classdict takes priority, 
and the surrounding context is only referenced if trying to get an item from 
the classdict raises `KeyError`.

There is at least one case in which I would like to do the reverse, and have 
the classdict be secondary to (masked by) any variables defined in the context 
surrounding the execution of the class body.

I have been able to at least unmask builtins by having the classdict object 
first try to get a result from `__builtins__` and then fall back to itself. 
Also, in the actual class body, declaring a variable as `global` seems to be a 
workaround for global variables, but that has to be done explicitly in the body 
of any subclass that needs it. Also, that does not handle non-globals in its 
surrounding context.

I'm not sure what the best way to deal with this would be, but my first thought 
is to maybe have a property that can be set on the metaclass type such as 
`metacls.relictant_classdict = True`.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/4YLADJ7BCUI5KZCZLIHHZJXGWAAX5YY6/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to