Class definitions, whether for concrete/instantiable classes or any of the ABC variants, have a similar structure defined, and will be arranged in sorted groups as follows:
- Class attributes and constants
- Property getter methods
- Property setter methods
- Property deleter methods
- Instance property definitions
- Object initialization (__init__)
- Object deletion (__del__)
- Instance methods (concrete or abstract)
- Overrides of standard built-in methods (__str__)
- Class methods
- Static methods
The property getter, setter, and deleter methods approach was selected, rather than using method decoration, in order to make it easier to keep property documentation in a single location in the class definition. The use of properties ...