How do I define the function in the importer so that it is visible inside imported? I tried this
importer.py
is
def build():
print "building"
build()
import imported
Whereby, imported.py
is simply
build()
Yet, this fails
building
Traceback (most recent call last):
File "C:\Users\valentin\Desktop\projects\maxim\miniGP\b01\evaluator\importer.py", line 6, in <module>
import imported
File "C:\Users\valentin\Desktop\projects\maxim\miniGP\b01\evaluator\imported.py", line 1, in <module>
build()
NameError: name 'build' is not defined
Update After I have got the response to make the circular import, so that import and imported depend on each other, I feel that I need to make clear that this is not always good. My purpose is to specify some common strategy in the imported module. It will use some user-defined functions, e.g. build
. User defines the necessary function(s) and calls the strategy. The point is that the shared strategy must not depend on specific user definitions. I believe that in place of import
, I need something like evaluate(imported.py)
, which I believe is a basic function in any script language, including Python. irc://freenode/python insists that I must use import
but I do not understand how.