best way to share an instance of a class among modules?

Michael Torrie torriem at gmail.com
Wed Feb 6 19:03:20 EST 2013


On 02/06/2013 03:41 PM, CM wrote:
> Thank you.  But, I'm sorry, I'm not following this enough to get it to
> work.  Shouldn't it be a little more like this:

No, not exactly.

> 
> # in utilities module
> shared_cursor =  DatabaseAccess_instance  #but how? see my question
> below...

How what?

> # in importer
> import utilities
> self.shared_cursor = utilities.shared_cursor  ("self" is here to make
> cursor available to all functions in importer

Umm no.  For one you're using self incorrectly.  For two, it already is
visible to all functions in the module.  You just have to refer to it as
"utilities.shared_cursor."

> My only problem, then, is I create the shared_cursor from within a
> function within the instance of DatabaseAccess().  How then do I pass
> it from within the function's namespace to the module's namespace so
> that I can do that first line?

Every function in a module has access to the module's global namespace.
 And your shared_cursor is there, inside of the utilities reference,
since utilities was imported into your module, "importer."



More information about the Python-list mailing list