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