Say I have a python file called fileOne.py
that imports fileTwo.py
. Is there a way for fileTwo.py
to access the objects from fileOne.py
dynamically? So fileTwo.py
doesn't need to know the name of the file that will import it, and instead can do something like this: FILE_THAT_IMPORTED_ME.myFunction()
.
Basically I want to know if there is a way to access objects from the 'parent' file that is importing a script, from said script.
CodePudding user response:
You can access the file which imported you by doing import __main__
and __main__
will contain the parent module.
a.py#
import b
print(b)
b.py#
import __main__
print(__main__)
Executing a.py
will result in
<module '__main__' from '/home/jonatan/PycharmProjects/tests/test/a.py'>
<module 'b' from '/home/jonatan/PycharmProjects/tests/test/b.py'>
Note that __main__
is being printed before b
since the module b has to complete its loading before continue the file a
.