Hi Ethan,

I'm not convinced that __all__ is responsible for codifying the api. The
contents of __all__, does not stop anyone from importing anything in the
module using `from foo import bar`. __all__ is specified in the tutorial as
being included for the `from foo import *` case:

https://docs.python.org/3/tutorial/modules.html

And similar the first result for __all__ on google, is a stack overflow
post stating that it is for from foo import *:

https://stackoverflow.com/questions/44834/can-someone-explain-all-in-python

Best,

George

On Wed, Mar 3, 2021 at 9:47 PM Ethan Furman <et...@stoneleaf.us> wrote:

> On 3/3/21 12:55 PM, George Harding wrote:
>
> > Python has an __all__ variable that can be defined in a module to
> restrict
> > which members of the module should be included in a call `from foo
> import *`.
>
> The primary purpose these days for `__all__` is to codify a module's API.
> The *-import is just a happy accident.
>
> > However specifying which members of the module should be excluded is more
> > difficult.
>
> And unnecessary -- specify `__all__` so your users know which classes,
> functions, variables, etc., can be safely used.  If it should be excluded,
> don't put it in `__all__`.
>
> --
> ~Ethan~
> _______________________________________________
> 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/EPNXFKCBYTCQVEWLZZGLR2XUKXXVJEQC/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
_______________________________________________
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/SZZ6DTPBLZWS56PRCTK7R6EGFOKVINH4/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to