экземпляра, если на вход скрипту поступает не имя метода, а имя операции (задача), которое нужно преобразовать в имя метода?
Ниже по ссылке упрощенная реализация того, что я хочу спросить. Многие детали опущены намерено, чтобы не засорять код:
https://pastebin.com/RxKkVpjx
Вот здесь в строках 3-5 имеется словарь, который содержит преобразования имён задач в методы, в строке 8 производится выбор конкретного метода из словаря, а в строке 12 вызывается выбранный метод.
Но эта реализация кажется мне не совсем элегантной.
Можете что-то подсказать по этому поводу? Или это вполне нормальное решение?
словарик
Спасибо
class Poller(abc.ABC): def __init__(self): self.methods = ["description", ...] def execute(self, task: str, device: Device): task = task.lower() if task in self.methods: concrette_method = getattr(self, task) return concrette_method(device) raise AttributeError(f"Poller method for task {task} is not available.") Но это говно какое-то
имена задач не всегда похожи на имена методов. Просто привести к регистру не вариант
Тогда через словарь: self.methods = { "descrition": "my_description_method"}
так и сделал. спасибо
Обсуждают сегодня