Modules, Packages and Developer Confusion. Oh My!

dhable at gmail.com dhable at gmail.com
Fri Nov 10 15:30:57 EST 2006


I think I'm still missing something in how python is handling packages
and it's mixing me up. I have a package with three files (modules?)
like so:

OPS:\
  __init__.py
  model.py
  search.py

To hide more details of the package structure, I import model and
search inside of __init__. It also seemed like a good idea to define a
global function that creates a database connection and I added it to
__init__.py. Thus, I have:


from model import *
from search import *

def create_connection():
  # details are unimportant for this example


When I try to use the create_connection function in model, I get errors
when I use it as a global function ( just create_connection()). The
only way to resolve the error was to import OPS inside of model and use
OPS.create_connection(). This doesn't seem natural. If model is part of
OPS, why do I need to tell python to import OPS and use this function
from OPS? I can see doing that from the outside world, but inside?

Any clarification would be greatly appreciated.




More information about the Python-list mailing list