"Ian Kelly" wrote in message news:calwzidm3khnagtt0ohveo5bhqk1tfejbuuuinw9tnuxrpnr...@mail.gmail.com...

On Thu, Sep 10, 2015 at 1:12 AM, Frank Millman <fr...@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


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to