I have a file structure like this:
test.py Dir1 __init__.py Something.py Dir2 __init__.py Something2.py
#Dir1.__init__.py from .Something import *
Dir2.__init__.py
have has the same code, but with .Something2
Something.py has simple add method, Something2.py has simple sub method.
What I need:
#test.py import Dir1 print(Dir1.Dir2.sub(10, 14))
But I get an error AttributeError: module 'Dir1' has no attribute 'Dir2'
.
If I use from .Dir2 import *
in Dir1.__init__.py
code in test.py
works, but also works print(Dir1.sub(10, 14))
, what I don’t want. I tryed many variants, but they brought me to error or Dir1.sub
working.
This can probably be found on the Internet, but my knowledge of English is suffering and I may miss the answer. Of course I’ve already tried searching for it on the Internet.
I will be very grateful for your answer.
Advertisement
Answer
Probably it is crutch, but I found solve. Now I have this file structure:
test.py Dir1 __init__.py Dir1 __init__.py Something.py Dir2 __init__.py Something2.py
#Dir1.__init__ import Dir1 as Add from .Dir1 import Dir2 as Sub
And now I can use
#test.py import Dir1 print(Dir1.Sub.sub(10, 7))
And can’t use
#test.py import Dir1 print(Dir1.sub(10, 7))