- Always prefer huge modules (i.e. few big source files) instead of Java's "one class, one file" policy. Or you can use Python packages instead (directory with __init__.py file) to organize multiple files.
- This tutorial about directory structure for Python projects.
- When creating "abstract" classes with some default methods, raise NotImplementedError in the base class. You can do so also with data attributes with @property in the base class like this.
Coding standards from Python PEP 8 Coding standards
- Always prefer spaces indentation, Guido told you so !
- Max 79 chars per lines, thanks Guido
- As Guido said: "Code in the core Python distribution should always use UTF-8 (or ASCII in Python 2). Files using ASCII (in Python 2) or UTF-8 (in Python 3) should NOT have an encoding declaration."
- "Imports should usually be on separate lines"
- Very VERY important naming conventions !
- Do not use (object) attributes if the attribute is not used at least 2 times in the object, otherwise use a local method argument.