Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад

Что такое паттерн Интерпретатор (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).

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.

Уровень

  • Рейтинг:

    3

  • Сложность:

    8

Навыки

  • Python

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

#interpreter

#pattern

#design

#arhitecture

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

  • Аватар

    Python Guru

    Sergey Filichkin

    Guru – это эксперты YeaHub, которые помогают развивать комьюнити.