import warnings class Callbacks(list): def append(self, value): assert callable(value), "It only excepts callable values!" def __call__(self, *args, **kwargs): for callback in self: try: callback(*args, **kwargs) except TypeError as e: warnings.warn(f"{callback} failed with arguments {args} and {kwargs}!") pass