Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Python: interpreter, pattern, design, arhitecture

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

    Python

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

#interpreter

#pattern

#design

#arhitecture

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

  • Аватар

    Python Guru

    Sergey Filichkin

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