Refactor callback subscription stuff to a mixin

This commit is contained in:
Kristóf Tóth
2018-03-07 10:12:58 +01:00
parent 6db4c80671
commit 6a6236e704
5 changed files with 29 additions and 21 deletions

View File

@ -0,0 +1,17 @@
from functools import partial
class CallbackMixin:
def __init__(self):
self._callbacks = []
def subscribe_callback(self, callback, *args, **kwargs):
fun = partial(callback, *args, **kwargs)
self._callbacks.append(fun)
def unsubscribe_callback(self, callback):
self._callbacks.remove(callback)
def _execute_callbacks(self, *args, **kwargs):
for callback in self._callbacks:
callback(*args, **kwargs)