Classes are blueprints for objects. __init__() is the constructor; self refers to the instance.
Inheritance
Child classes reuse parent behavior. Use super().__init__() for parent constructor.
Polymorphism
Different classes share the same interface. Python uses duck typing.