__missing__ for the top-level Python script

Chris Angelico rosuav at gmail.com
Wed Nov 12 12:52:20 EST 2014


On Thu, Nov 13, 2014 at 2:16 AM, Dave Angel <davea at davea.name> wrote:
> I gave it a short whirl, just trying to make __missing__ work.
>
> The type of globals () is a dict. I was able to add a
>  __missing__:myfunct to the instance but in order to work, the
>  __missing__ must be added as a class attribute,  a method. And
>  dict, being implemented in C, doesn't let you add class
>  attributes. Presumably the C code does the equivalent of
>  slots.

Yeah, I tried doing some of that kind of work and failed. Was hoping
someone with more knowledge of internals could pull it off.

> So the next thing to try would be to try to force the module
>  dictionary to be a userdict without slots. Then we could add the
>  necessary method. But that would be changing the python source. I
>  wasn't sure that was within the challenge constraints.

Haha! Well, unless we can convince people that this would really be a
good feature (which, somehow, I doubt...), not really. Though if it
can be enabled with a tiny patch to Python and then most of the magic
worked in PYTHONSTARTUP, that might do... but I suspect it'd need to
be fairly specifically coded.

ChrisA



More information about the Python-list mailing list