Я хотел бы подклассом list
и запускать событие (проверку данных) каждый раз, когда происходят какие-либо изменения с данными. Ниже приведен пример подкласса:
class MyList(list):
def __init__(self, sequence):
super().__init__(sequence)
self._test()
def __setitem__(self, key, value):
super().__setitem__(key, value)
self._test()
def append(self, value):
super().append(value)
self._test()
def _test(self):
""" Some kind of check on the data. """
if not self == sorted(self):
raise ValueError("List not sorted.")
Здесь я переопределяю методы __init__
, __setitem__
и __append__
, чтобы выполнить проверку, если данные будут изменены. Я думаю, что этот подход нежелателен, поэтому мой вопрос: есть ли возможность запускать проверку данных автоматически, если какая-либо мутация происходит с базовой структурой данных?