import sys
import pprint
def check_sys(key):
    value = sys.modules.get(key) or "missing"
    print 'sys.modules["{}"] = {}'.format(key, value) 
check_sys("foo")
import foo
print "Importing foo."
try:
    foo.print_stuff()
except NameError:
    print "expected NameError on 'foo.cars'"
check_sys("foo")
import foo.cars
foo.print_stuff() # why no NameError?
print "Printed stuff from foo."
check_sys("foo")
check_sys("foo.cars")
print 'sys.modules["foo"].cars =', sys.modules["foo"].cars

foo_vars = vars(foo)
del foo_vars["__builtins__"]
print "Everything in foo except '__builtins__':"
pprint.pprint(foo_vars)
