1) A Python class defines the properties and methods that objects of a certain kind can have. It acts as a blueprint for creating objects. 2) The __init__() method is called automatically when a new object is created, and is used to initialize the object's properties. 3) The self variable refers to the instance of the class and allows access to instance attributes and methods from within methods defined inside the class. It works as a reference to the object.