Что такое паттерн Интерпретатор (Interpreter)?

Паттерн Интерпретатор используется для создания парсеров и работы с текстовыми данными, которые описывают операции или выражения.

Короткий ответ

Паттерн Интерпретатор определяет грамматику языка и способ интерпретации выражений, что позволяет добавлять поддержку нового языка или синтаксиса в приложение.

 

Длинный ответ

Интерпретатор применим, когда необходимо анализировать и выполнять команды или выражения, записанные в текстовом формате. Этот паттерн подходит для создания простых языков, выражений или сложных фильтров.

 

Пример из реальной жизни:
Калькулятор, который интерпретирует математические выражения, записанные пользователем (например, "5 + 3").

 

Реализация в Python:

class Expression:
    def interpret(self, context):
        pass

class Number(Expression):
    def __init__(self, number):
        self.number = number

    def interpret(self, context):
        return self.number

class Add(Expression):
    def __init__(self, left, right):
        self.left = left
        self.right = right

    def interpret(self, context):
        return self.left.interpret(context) + self.right.interpret(context)

class Subtract(Expression):
    def __init__(self, left, right):
        self.left = left
        self.right = right

    def interpret(self, context):
        return self.left.interpret(context) - self.right.interpret(context)

# Использование
context = {}
expression = Add(Number(5), Subtract(Number(10), Number(3)))
print(expression.interpret(context))  # 5 + (10 - 3) = 12

 

Когда использовать:

- Для парсинга и выполнения текстовых данных.

- Для создания новых языков или DSL (Domain Specific Language).

Уровень

  • Рейтинг:

    3

  • Сложность:

    8

Навыки

  • Python

Ключевые слова

Подпишись на Python Developer в телеграм