[Python-ideas] Importing public symbols and simultainiously privatizing them, is too noisy

Rick Johnson rantingrickjohnson at gmail.com
Wed Mar 16 23:02:05 EDT 2016


On Wednesday, March 16, 2016 at 9:19:52 PM UTC-5, David Wilson wrote:
>
> On Wed, Mar 16, 2016 at 06:58:55PM -0700, Rick Johnson wrote: 
>
> > I avoid  __all__ like the plague. Too easy for it to get out of sync 
> with the 
> > API when i forget to add a new symbol. 
>
> In that case why not simply also avoid 'from .. import *' like the  
> plague? 


I do.
 

> It seems far simpler than renaming every single import, which 
> places a permanent burden on future maintainers, code completing 
> editors, grep, etc. 
>

Oh, i understand your confusion now. You think i'm importing *EVERY* symbol 
this way. No, i'm only importing the symbols i need. And, just FYI, not all 
modules exist as a "top level component". Many times, you need to split 
parts of a "component hierarchy" across multiple modules, with each module 
in the "chain", building upon the last, to create a complex system, that is 
greater than the sum of all it's parts.

For instance: I might start with a "base module" that exposes a few public 
symbols. Granted, the module may have many private variables, but it only 
exposes a handful to the public. If i then "inherit" from that module, and 
"extend it", the symbols that i import from the first module may have made 
sense to be public in the first module, but now, in the new module, they 
are merely sub-components of a larger interface, and should therefore be 
private. 

 (i use the terms "extend", and "inherit" very loosely here)

If i simply wanted *ALL* the pubic symbols, and the module i was importing 
*FROM* followed the Python style guide by using a single underscore for 
private symbols,  then "from module import *" is the way to go -- because i 
would *ONLY* receive the public symbols.  
 

> FWIW I'd probably _break _down _and cry _if _faced _with _maintaining 
> _code _like _that. 
>
 
This reminds me of a funny story. I once told my doctor "When i do this, it 
hurts". And you what he told me? He said: "Well, don't do that"

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20160316/912020c8/attachment.html>


More information about the Python-ideas mailing list