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ą dicti implementuje kilka dodatkowych funkcji. W każdym razie chciałbym zrobić podklasę dictsiebie 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ę DictWatchzamiast dicti 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!