Есть ли возможность улучшить качество кода или заменить его на оператор 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 "Данный тип заданий пока не поддерживается?"