Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #96325 > unrolled thread

Re: Question about import

Started by"Frank Millman" <frank@chagford.com>
First post2015-09-11 08:40 +0200
Last post2015-09-11 08:40 +0200
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Question about import "Frank Millman" <frank@chagford.com> - 2015-09-11 08:40 +0200

#96325 — Re: Question about import

From"Frank Millman" <frank@chagford.com>
Date2015-09-11 08:40 +0200
SubjectRe: Question about import
Message-ID<mailman.357.1441953656.8327.python-list@python.org>
"Ian Kelly"  wrote in message 
news:CALwzidm3khNaGTt0OhVEo5bhqk1tFEjBUUUinW9TNUxrpnr8cw@mail.gmail.com...

On Thu, Sep 10, 2015 at 1:12 AM, Frank Millman <frank@chagford.com> wrote:
> > That makes me wonder if, in my project, I can import all modules inside
> > 'start.py', and then just use 'import package_name' inside each module?
>
> You can, but for readability and reuse I think it's better to be
> explicit in each module and import the fully qualified module names
> that are needed, rather than relying on some other module to import
> them for you.

I don't disagree. However, I started this exercise because I found a 
situation in one of my modules where I was referring to another module 
without ever importing it, and it worked! It took me quite a while to track 
down what was happening. So there could be a case for being explicit in the 
other direction - import all modules up front, and explicitly state that all 
modules are now free to reference anything in any other module. I will give 
it more thought.

> > Another question - I thought that, because aa.py and bb.py are in 
> > different
> > sub-directories, I would have to set them up as packages by adding
> > '__init__.py' to each one, but it works fine without that. What am I
> > missing?

> That surprises me also, but I suspect it's because they're
> subdirectories of the current working directory rather than packages
> found on the sys.path.

I had a look at PEP 420, as mentioned by Peter. I did not understand much of 
it, but it did say that omitting __init__.py incurs an additional overhead, 
so I will stick with including it.

Many thanks for the useful input.

Frank

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web