Classes bundle data and behaviour. Python supports inheritance, method overriding, operator overloading through special methods and properties.
1Points
__init__ initialises instances; self refers to the instance
Class attributes are shared; instance attributes belong to one object
super() calls the parent class
__str__, __repr__, __add__, __len__, __eq__ customise behaviour
@staticmethod, @classmethod and @property decorators
Names starting with __ are name-mangled