Here's a fun question for the python lovers in the crowd. We ran into some
unexpected behavior in our code and don't have a good explanation for why it
happens.
We've reduced it down to a super simple test case with three files:
test.py
--------
import foo
try:
foo.print_stuff()
except NameError:
print 'expected NameError'
import foo.cars
foo.print_stuff() # why no NameError?
foo/__init__.py
---------
def print_stuff():
print cars.__file__
foo/cars.py
---------
def honk():
pass
Why doesn't the second call to print_stuff() raise a NameError? Why does
importing something in test.py add it to the foo module's namespace?
--
--Leo