У меня пайтон версии 2.7. Есть файл
fb2parser.py, в котором есть функция StartElement c десятью elif в теле функции, каждое из которых проверяет значение одной переменной. Вот так это выглядит
http://sprunge.us/dJCrxY?py . Мне надо сделать эту функцию и ей соседствующие более читаемыми, для того, чтобы потом было проще поменять используемые в парсере библиотечные функции обработки xml на defusedxml[1], который рекомендует официальная документация[2] пайтона. Там это написано в красном поле Warning. Я попытался переписать это используя dict, вот так
http://sprunge.us/phgoa7?py . Читал faq по дизайну второго и третьего пайтона[3][4] и PEP257 [5] , но не получилось описанным там образом менять атрибуты класса,вот Traceback:
functions = {'description': self.is_desc = True ,
^
SyntaxError: invalid syntax
[1]:
https://pypi.org/project/defusedxml/[2]:
https://docs.python.org/3/library/xml.html[3]:
https://docs.python.org/2/faq/design.html#why-isn-t-there-a-switch-or-case-statement-in-python[4]:
https://docs.python.org/3/faq/design.html#why-isn-t-there-a-switch-or-case-statement-in-python [5]:
https://www.python.org/dev/peps/pep-0275/