Debuguję kod i chcę się dowiedzieć, kiedy uzyskuje się dostęp do określonego słownika. Cóż, w rzeczywistości jest to klasa, która jest podklasą dict
i implementuje kilka dodatkowych funkcji. W każdym razie chciałbym zrobić podklasę dict
siebie i dodać nadpisanie __getitem__
oraz __setitem__
wygenerować wyjście debugowania. Teraz mam
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'
jest kluczem, który ostatecznie zostanie ustawiony i którego chcę użyć do zidentyfikowania wyniku. Następnie zmieniłem klasę, którą obsługuję, na podklasę DictWatch
zamiast dict
i zmieniłem wywołanie superkonstruktora. Mimo wszystko wydaje się, że nic się nie dzieje. Myślałem, że jestem sprytny, ale zastanawiam się, czy powinienem iść w innym kierunku.
Dzięki za pomoc!