Python namespace in between builtins and global?

Posted by Paul on Stack Overflow See other posts from Stack Overflow or by Paul
Published on 2010-06-09T23:15:45Z Indexed on 2010/06/09 23:22 UTC
Read the original article Hit count: 279

Hello, As I understand it python has the following outermost namespaces:

Builtin - This namespace is global across the entire interpreter and all scripts running within an interpreter instance.

Globals - This namespace is global across a module, ie across a single file.

I am looking for a namespace in between these two, where I can share a few variables declared within the main script to modules called by it.

For example, script.py:

import Log from Log
import foo from foo

log = Log()
foo()

foo.py:

def foo():
    log.Log('test')  # I want this to refer to the callers log object

I want to be able to call script.py multiple times and in each case, expose the module level log object to the foo method.

Any ideas if this is possible?

It won't be too painful to pass down the log object, but I am working with a large chunk of code that has been ported from Javascript. I also understand that this places constraints on the caller of foo to expose its log object.

Thanks, Paul

© Stack Overflow or respective owner

Related posts about python

Related posts about namespaces