Ich debugge Code und möchte herausfinden, wann auf ein bestimmtes Wörterbuch zugegriffen wird. Nun, es ist eigentlich eine Klasse, die eine Unterklasse bildet dictund einige zusätzliche Funktionen implementiert. Was ich jedenfalls tun möchte, ist, dictmich selbst zu unterordnen und Override hinzuzufügen __getitem__und __setitem__eine Debugging-Ausgabe zu erzeugen. Gerade habe ich
class DictWatch(dict):
def __init__(self, *args):
dict.__init__(self, args)
def __getitem__(self, key):
val = dict.__getitem__(self, key)
log.info("GET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val)))
return val
def __setitem__(self, key, val):
log.info("SET %s['%s'] = %s" % str(dict.get(self, 'name_label')), str(key), str(val)))
dict.__setitem__(self, key, val)
' name_label'ist ein Schlüssel, der irgendwann gesetzt wird, mit dem ich die Ausgabe identifizieren möchte. Ich habe dann die Klasse, die ich instrumentiere, in Unterklasse DictWatchanstatt dictgeändert und den Aufruf an den Superkonstruktor geändert. Trotzdem scheint nichts zu passieren. Ich dachte, ich wäre schlau, aber ich frage mich, ob ich eine andere Richtung einschlagen sollte.
Danke für die Hilfe!