Der ständige Zugriff auf "__dict__" ist unschön, weil unnötig. In fast allen Fällen besteht überhaupt kein Anlass, an Interna zu manipulieren.
Die "magischen" Zahlen für die Kategorien sind auch nicht schön, vor allem, weil Du Dir trotzdem die Mühe machst, jede Zahl im Kommentar zu benennen. Dann kannst Du auch gleich echte Konstanten oder ein Wörterbuch nutzen.
Das mit __dict__ hab ich mir fast schon gedacht, allerdings kannte ich "__dict__" vorher kaum (wollte mich damit mal auseinandersetzten) und es hat grad gepasst (z.B. __getitem__)
An den 2. Punkt hab ich einfach nicht gedacht, allerdings wäre ein dict nich unveränderbar, wie es ein Tuple ist
@Dav1d: Ja und? Selbst bei einem Tupel könnte man den Namen immer noch neu binden, wenn man wollte … ein Wörterbuch ist einfach lesbarer, der groß geschriebene Name als Hinweis auf eine Konstante sollte der Warnung genug sein, das gebundene Objekt nicht zu verändern.