Ваш первый подход достаточно хорош, если только вы не хотите использовать только атрибуты класса, а не атрибуты экземпляра
Также каждый класс в Python наследуется от объекта, как подробно объяснено здесь
class MyClass:
pass
Примером таких классов может быть следующий
- Класс для хранения нескольких атрибутов класса
class MyClass:
a = 1
b = 2
print(MyClass.a)
#1
print(MyClass.b)
#2
- Пользовательское исключение, при котором конструктор неявно берется из базового класса
class MyException(Exception):
pass
raise MyException
# raise MyException
#__main__.MyException