Мне нужно вызвать задачу чата обновления синхронно / асинхронно c на основе переменной flag. У меня есть примерно такой код:
class UpdateChat:
def __init__(self, is_async=True):
self._async = is_async
def update(self):
parse_call = self._parse_async if self._async else self._parse_sync
parse_call(utterance,dynamic_concepts,cache_id_str)
# This should have ideally mapped correctly with function parameters of _parse_sync & _parse_async
# But somehow:
# - utterance is being mapped with dynamic_concepts
# - dynamic_concepts with cache_id_str
# cache_id_str not being mapped at all
def _parse_sync(self, utterance, dynamic_concepts=None, cache_id_str=None):
pass
def _parse_async(self, utterance, dynamic_concepts=None, cache_id_str=None):
pass
Функция обновления не отображает параметры, передаваемые в parse_call, правильно (как указано в комментариях выше)
Два вопроса, если можно :
- Почему это происходит?
- Это правильный способ реализации таких функций (с точки зрения шаблона проектирования?) Следует ли нам использовать интерфейс (Python AB C) или что-то еще помимо таких сопоставлений?