Есть ли возможность улучшить качество кода или заменить его на оператор match case?

Мой скрипт получает на вход html файл, и для дальнейшей работы необходимо выяснить тип задания, можно ли как-то избавится от огромного количества elif?

class Answer:
    def __init__(self, html):
        self.html = html
        self.__soup = bs4.BeautifulSoup(html, 'html.parser')

    def decode_base64(self, string):
        string_bytes = b64decode(string.encode('ascii'))
        return string_bytes.decode('ascii', errors='replace')

    def get_answer(self):
        if self.__soup.find_all("vim-dnd-text-drags"):
            return self.__drag_and_drop()
        elif self.__soup.find_all("vim-select-answers"):
            return self.__select_answer()
        elif self.__soup.find_all("vim-test-image"):
            return self.__image_answer()
        elif self.__soup.find_all("vim-input-answers"):
            return self.__input_answer()
        elif self.__soup.find_all("vim-strike-out"):
            return self.__strike_out_answer()
        elif self.__soup.find_all("vim-groups"):
            return self.__groups_answer()
        elif self.__soup.find_all("vim-dnd-image-set-drags"):
            return self.__image_drag_and_drop()
        elif self.__soup.find_all("vim-test"):
            return self.__test_answer()
        elif self.__soup.find_all("vim-dnd-group"):
            return self.__group_drag_and_drop()
        elif self.__soup.find_all("math-input"):
            return self.__math_input_answer()   
        else:
            return "Данный тип заданий пока не поддерживается?"

Ответы (0 шт):