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