[Python-Dev] Comment on PEP 562 (Module __getattr__ and __dir__)

Guido van Rossum guido at python.org
Sun Nov 19 23:45:31 EST 2017


Given that we're also allowing customization of __dir__ I wouldn't want to
link this to __dir__. But maybe you meant to say that vars() is the public
interface for __dict__. Even if it were, in the case of specifying this
particular customization for this PEP, I strongly prefer to write it in
terms of __dict__.

On Sun, Nov 19, 2017 at 6:34 PM, Steven D'Aprano <steve at pearwood.info>
wrote:

> On Sun, Nov 19, 2017 at 05:34:35PM -0800, Guido van Rossum wrote:
> > On Sun, Nov 19, 2017 at 4:57 PM, Steven D'Aprano <steve at pearwood.info>
> > wrote:
>
> > > A minor point: this should(?) be written in terms of the public
> > > interface for accessing namespaces, namely:
> > >
> > >               getter = vars(mod)["__getattr__"]
> >
> > Should it? The PEP is not proposing anything for other namespaces. What
> > difference do you envision this way of specifying it would make?
>
> I don't know if it should -- that's why I included the question mark.
>
> But my idea is that __dict__ is the implementation and vars() is the
> interface to __dir__, and we should prefer using the interface rather
> than the implementation unless there's a good reason not to.
>
> (I'm not talking here about changing the actual name lookup code to go
> through vars(). I'm just talking about how we write the equivalent
> recipe.)
>
> Its not a big deal either way, __dict__ is already heavily used and
> vars() poorly known. Call it a matter of taste, if you like, but in my
> opinion the fewer times we directly reference dunders, the better.
>
>
> --
> Steve
> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/
> guido%40python.org
>



-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20171119/45822f51/attachment.html>


More information about the Python-Dev mailing list