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