__author__ = 'RemiZOffAlex' __email__ = 'remizoffalex@mail.ru' class Mediator: def __init__(self): self.__values = {} def get(self, name): assert name in self.__values, f'Ключ {name} в настройках не найден' return self.__values[name] def set(self, name, value): self.__values[name] = value def emit(self, name, *args, **kwargs): assert name in self.__values, f'Ключ {name} в настройках не найден' method = self.__values[name] response = method(*args, **kwargs) return response def register(self, name, function): self.__values[name] = function def __contains__(self, key): if key in self.__values: return True else: return False def __delitem__(self, key): del self.__values[key] def __getitem__(self, key): value = self.__values[key] return value def __setitem__(self, key, value): self.__values[key] = value def __iter__(self): for name in self.__values.keys(): yield name def __repr__(self): result = [] for key in self.__values: value = self.__values[key] result.append(f'{key}: {value}') return '/n'.join(result)