Классы
Класс — это чертёж для объектов. __init__ вызывается при создании объекта, self — сам объект:
class Dog:
def __init__(self, name):
self.name = name # атрибут
def speak(self): # метод
return f"{self.name}: гав"
rex = Dog("Рекс")
print(rex.speak()) # Рекс: гав
Метод __len__ позволяет вызывать len(obj), а любой метод может бросить исключение, если действие невозможно.