Classes model state and behavior
A class defines a type and an object is an instance of that type. Classes are useful when data and the operations that maintain or use that data belong together.
Constructors and instance state
__init__() initializes an instance. Attributes stored on self belong to that particular object. Methods can read and change the object's state while enforcing useful rules.
Do not create classes unnecessarily
A simple dictionary or dataclass may be better for a data-only record. A class becomes valuable when behavior, invariants, abstraction or lifecycle management makes the object model easier to understand.
Practice: create a BankAccount class with deposit and withdrawal methods and prevent invalid balances.