- All types in Python are classes
- Classes define the structure and behavior of an object
- Class is determined when an object is created
- Class is fixed for the lifetime of the object
- Classes are defined with the “class” keyword followed by a name with CamelCase syntax
- Class instances are created the same way you call a function
- Functions defined inside the class are instance methods
- They need to have an object instance “self” as a parameter
- To initialize new instances use the initializer. It is not a constructor.
- Instance attributes are created by assigning them
- Instance methods that help access implementation details are should be prefixed with an underscore (_)
- Established class invariants in the initializer
- Within objects, method calls still must be preceded with “self”
- Classes can inherit from their parents.