On Mon, May 3, 2021 at 6:49 PM Stestagg <stest...@gmail.com> wrote:

> class A:
>     Namespace B:
>         C = 1
>
> A.__dict__ == {‘B.C’: 1, ‘B’: <namespace proxy>}


OK, that is a difference.  I don't really understand why it's desirable,
but I see the difference.

I can make that happen with a metaclass that would allow:

class A(MagicNamespace):
    class B:
        C = 1

A.__dict__ == {'B.C': 1, 'B': <class 'module.B'>}

So that wouldn't be identical in the repr(), but is there something else
important here?

In general, I find it anathema to add syntax for something that is easily
handled by existing inheritance mechanisms.  If I want to, I can even make
every class defined within the body of a MagicNamespace magically become a
MagicNamespace too, if that's a thing someone wants.

Actually, I might not even need a metaclass, a MagicNamespace.__new__()
method might be adequate. I haven't fully thought it out.

-- 
The dead increasingly dominate and strangle both the living and the
not-yet born.  Vampiric capital and undead corporate persons abuse
the lives and control the thoughts of homo faber. Ideas, once born,
become abortifacients against new conceptions.
_______________________________________________
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/5T7HQGZSLX7Z6W2LSDB4JH2N55FBIZVX/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to