Я отлаживаю некоторый код и хочу узнать, когда осуществляется доступ к определенному словарю. Ну, на самом деле это класс, который является подклассом dictи реализует пару дополнительных функций. В любом случае, я хотел бы создать подкласс dictсебя, добавить переопределение __getitem__и __setitem__произвести некоторый отладочный вывод. Прямо сейчас у меня есть
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'- это ключ, который в конечном итоге будет установлен, и я хочу использовать его для идентификации вывода. Затем я изменил класс, который я использую для DictWatchсоздания подкласса, dictи изменил вызов суперконструктора. Тем не менее, похоже, что ничего не происходит. Я думал, что поступаю умно, но мне интересно, стоит ли мне идти в другом направлении.
Спасибо за помощь!