Thursday, August 30, 2018

python - How to import the class within the same directory or sub directory?



I have a directory that stores all the .py files.




bin/
main.py
user.py # where class User resides
dir.py # where class Dir resides


I want to use classes from user.py and dir.py in main.py.
How can I import these Python classes into main.py?
Furthermore, how can I import class User if user.py is in a sub directory?



bin/

dir.py
main.py
usr/
user.py

Answer





Make an empty file called __init__.py in the same directory as the files. That will signify to Python that it's "ok to import from this directory".




Then just do...



from user import User
from dir import Dir


The same holds true if the files are in a subdirectory - put an __init__.py in the subdirectory as well, and then use regular import statements, with dot notation. For each level of directory, you need to add to the import path.



bin/
main.py

classes/
user.py
dir.py


So if the directory was named "classes", then you'd do this:



from classes.user import User
from classes.dir import Dir





Same as previous, but prefix the module name with a . if not using a subdirectory:



from .user import User
from .dir import Dir

No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...