Нужен совет по рефакторингу PythonicPython

Программы на Python
Anonymous
Нужен совет по рефакторингу Pythonic

Сообщение Anonymous »

Я пишу токенизатор для файлов, которые игнорируют преамбулу. Файлы написаны на Markdown, а в заголовках H1 есть список ключевых слов, которые меняют состояние парсера. При обнаружении EOF конечный автомат возвращается в состояние игнорирования и ищет заголовки ключевых слов.
Я решил создать обобщенный пакет для будущего использования, поэтому написал следующее код просмотра:

Код: Выделить всё

def peek(self):
while True:
if (self.skip_white_space and self.expect_type('WHITE_SPACE') or \
self.skip_EOF and self.expect_type('EOF')) and \
not self.is_end():
self.consume()
continue
break
return None if self.is_end() else self.lines[self.line][self.column]
Есть ли лучший способ сделать это? Бесконечный цикл уродлив. Огромное условие if тоже ерунда.
Я пытался выучить Python, но, похоже, потерпел неудачу. Я ожидал чего-то не какашка.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ice-needed

Вернуться в «Python»