@Gerenuk: Nun, snafu meinte wohl, dass man das ".__dict__" jedes zu überwachenden Exemplars durch ein eigenen Mapping-Typen ersetzt, der Zugriffe loggt, so dass man die Veränderungen der Werte nachvollziehen kann. Davon rate ich nun noch nachdrücklicher ab, denn damit spielt man wirklich an den Interna von Objekten. Und sie funktioniert auch nicht für alle Typen, insbesondere nicht für builtins, Erweiterungstypen und Klassen mit ".__slots__". Außerdem enden bei weitem nicht alle Attributzugriffe im Namensraum eines Exemplars, die nennenswerte Ausnahme sind Deskriptoren.
Wenn überhaupt, dann bitte mit "sys.set_trace()" (ich habe das Gefühl, mich schon wieder zu wiederholen

).
Für Enthought Traits, mit denen man sowas wohl
möglicherweise umsetzen könnte, nach allem, was man der Dokumentation so entnehmen kann. Allerdings musst Du dafür jede zu überwachende Klasse entsprechend umschreiben. Deine Anforderung „von außen“ ist mithin nicht erfüllt.
Neidisch auf Deine „Lösung“ ist hier bestimmt niemand, weil jeder andere sich ungefähr vorstellen kann, wie Dein Quelltext wohl aussieht, wenn sowas nötig ist, und wohin das führen wird. Die Kritik ist ja kein Spaß, um Dich zu ärgern, sondern hat gute Gründe. Doch letztlich ist es selbstverständlich Dein Problem, wenn es Dich nicht interessiert, dass mehrere Personen nachdrücklich abraten. Niemand kann Dich letztlich daran hindern, zu tun, was Du nicht lassen kannst, also höre bitte auf zu jammern, dass sich niemand für Dein Problem interessiert und niemand Dir eine Lösung zeigen möchte.