[Tutor] Import vs #include
Kent Johnson
kent37 at tds.net
Fri Sep 18 21:25:17 CEST 2009
On Fri, Sep 18, 2009 at 2:14 PM, Warren Marshall <epicboy at gmail.com> wrote:
>
> I'm trying to get my head around the organization of a larger Python
> project.
>
> 1. Am I right in thinking that in Python, you don't have the concept of
> something like a precompiled header and that every file that wants to use,
> say "vector.py" needs to import that module?
Yes.
> 2. How are Python projects typically organized in terms of having many
> files. Are sub-directories for different kinds of files (rendering files go
> here, file management files go here, etc), or does that not play nicely with
> the import command?
It's fine. The directories are called packages and must contain a
(possibly empty) file named __init__.py. Then you can do things like
from package.module import SomeClass
See the std lib for examples, for example the email and logging packages.
> 3. As you can tell, I've done a lot of C/C++/C# and I'm trying to shake
> loose the analog that I've built up in my head that import is Python's
> answer to #include. It isn't, is it?
Not really, it is more like a using declaration in C# except it
doesn't bring the contents of the module into scope, just the module
itself.
using System; // C#
is like
from sys import * # Python
though the latter form is discouraged in favor of just
import sys
or importing the specific items you need:
from sys import modules
Kent
More information about the Tutor
mailing list