I'm starting a Python project and expect to have 20 or more classes in it. As is good practice I want to put them in a separate file each. However, the project directory quickly becomes swamped with files (or will when I do this).
If I put a file to import in a folder I can no longer import it. How do I import a file from another folder and will I need to reference to the class it contains differently now that it's in a folder?
Thanks in advance
Create an __init__.py
file in your projects folder, and it will be treated like a module by Python.
Classes in your package directory can then be imported using syntax like:
from package import class
import package.class
Within __init__.py
, you may create an __all__
array that defines from package import *
behavior:
# name1 and name2 will be available in calling module's namespace
# when using "from package import *" syntax
__all__ = ['name1', 'name2']
And here is way more information than you even want to know about packages in Python
Generally speaking, a good way to learn about how to organize a lot of code is to pick a popular Python package and see how they did it. I'd check out Django and Twisted, for starters.