uz
Feedback
Python | Вопросы собесов

Python | Вопросы собесов

Kanalga Telegram’da o‘tish

📈 Telegram kanali Python | Вопросы собесов analitikasi

Python | Вопросы собесов (@python_easy_ru) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 13 104 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 9 734-o'rinni va Rossiya mintaqasida 50 704-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 13 104 obunachiga ega bo‘ldi.

10 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -55 ga, so‘nggi 24 soatda esa 1 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 8.86% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 5.51% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 1 161 marta ko‘riladi; birinchi sutkada odatda 722 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 3 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent ставь, модуль, строка, docker, alice kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Cайт: easyoffer.ru Реклама: @easyoffer_adv ВП: @easyoffer_vp Тесты t.me/+20tRfhrwPpM4NDQy Задачи t.me/+nsl4meWmhfQwNDVi Вакансии t.me/+cXGKkrOY2-w3ZTky

Yuqori yangilanish chastotasi (oxirgi ma’lumot 11 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

13 104
Obunachilar
+124 soatlar
-147 kunlar
-5530 kunlar
Postlar arxiv
📌 Что такое lru cache ? 💬 Спрашивают в 3% собеседований LRU (Least Recently Used) cache — это алгоритм кэширования, который удаляет наименее недавно использованные элементы для освобождения места для новых. В этом алгоритме кэш запоминает, когда каждый элемент был использован в последний раз, и при необходимости удаления элемента удаляет тот, который использовался наиболее давно. 🤔 Зачем он нужен? 1️⃣ Улучшение производительности: Кэширование позволяет уменьшить время доступа к часто используемым данным. 2️⃣ Эффективное использование памяти: Помогает эффективно использовать ограниченную память, удаляя устаревшие данные. 3️⃣ Простота реализации: Алгоритм LRU относительно прост для реализации и часто используется в системах с ограниченными ресурсами. 🤔 Как он работает? Обычно реализуется с использованием двух ключевых структур данных: 1️⃣ Хэш-таблица: Для быстрого доступа к кэшированным данным. 2️⃣ Двусвязный список: Для отслеживания порядка использования элементов. Наиболее недавно использованные элементы находятся в начале списка, а наименее недавно использованные — в конце. Модуль functools предоставляет встроенную реализацию LRU cache через декоратор lru_cache. Вот пример использования этого декоратора:
from functools import lru_cache

@lru_cache(maxsize=3)
def fibonacci(n):
    if n < 2:
        return n
    return fibonacci(n-1) + fibonacci(n-2)

# Использование
print(fibonacci(10))  # 55
print(fibonacci.cache_info())  # CacheInfo(hits=8, misses=11, maxsize=3, currsize=3)

# Вывод значений из кэша
print(fibonacci(8))   # 21
print(fibonacci.cache_info())  # CacheInfo(hits=9, misses=11, maxsize=3, currsize=3)
🤔 Преимущества: 1️⃣ Улучшение производительности: Часто используемые данные остаются в кэше, что снижает время доступа. 2️⃣ Эффективное использование памяти: Кэш автоматически удаляет устаревшие данные, освобождая место для новых. 3️⃣ Простота реализации: Встроенные библиотеки и декораторы, такие как lru_cache в Python, упрощают внедрение. 🤔 Недостатки: 1️⃣ Неопределенность удаления: В определённых сценариях LRU может не быть оптимальным выбором для удаления элементов. 2️⃣ Дополнительные накладные расходы: Управление порядком использования элементов требует дополнительных ресурсов. 🤔 Когда его использовать? ➕ Когда нужно кэшировать результаты дорогостоящих вычислений. ➕ Когда доступ к данным является частым и повторяющимся. ➕ Когда размер кэша ограничен, и необходимо автоматически удалять устаревшие данные для освобождения места. LRU cache является эффективным и простым способом улучшения производительности и управления памятью в системах с ограниченными ресурсами. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Ответьте на 1 вопрос и получите 60 дней с Яндекс Плюс! Музыка, подкасты, аудиокниги, фильмы, сериалы, кешбэк баллами Плюса во
Ответьте на 1 вопрос и получите 60 дней с Яндекс Плюс! Музыка, подкасты, аудиокниги, фильмы, сериалы, кешбэк баллами Плюса во всех сервисах Яндекса. Будьте в Плюсе — 60 дней всего за 1 рубль! Предложение ограничено. Подписаться #реклама 18+ plus.yandex.ru О рекламодателе

🤔 Какое преимущество предоставляет использование asyncio по сравнению с традиционной многопоточностью?
Anonymous voting

📌 Что такое паттерн Посетитель (Visitor) ? 💬 Спрашивают в 3% собеседований Паттерн "Посетитель" (Visitor) — это поведенческий паттерн проектирования, который позволяет добавлять в программу новые операции, не изменяя классы объектов, над которыми эти операции могут выполняться. Посетитель позволяет определить операцию для объектов других классов, не изменяя эти классы. 🤔 Зачем нужен данный паттерн? 1️⃣ Разделение алгоритмов и структуры объектов: Позволяет вынести операции, выполняемые над объектами, в отдельный класс, что упрощает добавление новых операций. 2️⃣ Добавление новых операций: Упрощает добавление новых операций без изменения классов объектов. 3️⃣ Поддержка сложных структур данных: Полезен при работе со сложными структурами данных, такими как составные объекты или деревья. 🤔 Как работает данный паттерн? Паттерн включает следующие компоненты: ➕ Элемент (Element): Интерфейс или абстрактный класс для объектов, которые могут быть приняты посетителем. ➕ Конкретный элемент (ConcreteElement): Класс, реализующий элемент, который может быть принят посетителем. ➕ Посетитель (Visitor): Интерфейс или абстрактный класс для объектов, выполняющих операции над элементами. ➕ Конкретный посетитель (ConcreteVisitor): Класс, реализующий операции, выполняемые над элементами.
from abc import ABC, abstractmethod

# Интерфейс элемента
class Element(ABC):
    @abstractmethod
    def accept(self, visitor):
        pass

# Конкретные элементы
class TextElement(Element):
    def accept(self, visitor):
        visitor.visit_text_element(self)

    def get_text(self):
        return "This is a text element."

class ImageElement(Element):
    def accept(self, visitor):
        visitor.visit_image_element(self)

    def get_image(self):
        return "This is an image element."

# Интерфейс посетителя
class Visitor(ABC):
    @abstractmethod
    def visit_text_element(self, element):
        pass

    @abstractmethod
    def visit_image_element(self, element):
        pass

# Конкретный посетитель
class PrintVisitor(Visitor):
    def visit_text_element(self, element):
        print(f"Printing: {element.get_text()}")

    def visit_image_element(self, element):
        print(f"Printing: {element.get_image()}")

class SaveVisitor(Visitor):
    def visit_text_element(self, element):
        print(f"Saving: {element.get_text()}")

    def visit_image_element(self, element):
        print(f"Saving: {element.get_image()}")

# Клиентский код
elements = [TextElement(), ImageElement()]
print_visitor = PrintVisitor()
save_visitor = SaveVisitor()

for element in elements:
    element.accept(print_visitor)

for element in elements:
    element.accept(save_visitor)
🤔 Преимущества: 1️⃣ Добавление новых операций: Легко добавлять новые операции без изменения классов элементов. 2️⃣ Разделение кода: Разделяет алгоритмы и структуру объектов, упрощая их понимание и поддержку. 3️⃣ Поддержка сложных структур данных: Упрощает работу с составными объектами или деревьями. 🤔 Недостатки: 1️⃣ Изменение классов элементов: При добавлении новых типов элементов требуется изменение всех классов посетителей. 2️⃣ Нарушение инкапсуляции: Посетитель может требовать доступа к закрытым полям и методам элементов, что может нарушить инкапсуляцию. 🤔 Когда использовать данный паттерн? ➕ Когда необходимо выполнять множество различных операций над объектами сложной структуры. ➕ Когда нужно добавлять новые операции, не изменяя классы объектов. ➕ Когда изменение алгоритмов чаще, чем изменение структуры объектов. Паттерн "Посетитель" является мощным инструментом для организации и расширения операций над объектами, упрощая добавление новых операций и улучшая структуру кода. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🧑‍💻 Если твой английский позволяет ответить только на вопрос "Do you speak English", то с этим нужно что-то делать, будучи программистом. 🫤 Ты в курсе, что ... - говорят по-английски — 20% из всех людей. - Большое кол-во IT документации написано на английском. Хочешь понимать код лучше? Изучи язык, который используется в его основе. 📕 На нашем канале ты постепенно будешь набираться опыта, в этом тебе помогут: - Тесты для изучения английского: проверьте свои знания на практике. - Английский через мемы: учите язык весело и с интересом. - Шпаргалки для повторения: закрепите знания быстро и эффективно. - Английский сленг программиста: станьте настоящим профи в коммуникации. 🔥 Маленький шаг в изучении иностранного откроет перед тобой большие возможности будущего специалиста и значительно повысит твое зп. 🌸 Подпишись, do it!

ТОП-4 Курса по Программированию ⚡Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов сту
ТОП-4 Курса по Программированию ⚡Tutortop — маркетплейс курсов №1 по количеству школ-партнеров, курсов и реальных отзывов студентов. ✅Хотите стать программистом, но не знаете с какого языка начать? Помогаем разобраться в самых популярных и востребованных языках программирования. Подарок в конце подборки! Выбрать #реклама 16+ tutortop.ru О рекламодателе

🤔 Какой метод в Python используется для создания сопрограмм (coroutines)?
Anonymous voting

👩‍💻 Есть опыт в проге, но не растет зп? Может нужно найти крутой оффер? 🗿 Большинство IT специалистов работает за копейки
👩‍💻 Есть опыт в проге, но не растет зп? Может нужно найти крутой оффер? 🗿 Большинство IT специалистов работает за копейки и даже не осознает этого. Лучший способ понять рынок вакансий - стать его частью и начать анализировать. 👍 Предела совершенству нет, что нельзя сказать про зп в рамках одной компании. Подпишись на Мидл работает и повышай свой капитал.

📌 Что такое шаблонный метод (Template method) ? 💬 Спрашивают в 3% собеседований Паттерн "Шаблонный метод" (Template Method) — это поведенческий паттерн проектирования, который определяет скелет алгоритма в методе, оставляя некоторые шаги подклассам. Подклассы могут переопределять эти шаги, не изменяя структуру алгоритма. 🤔 Зачем нужен данный паттерн? 1️⃣ Повторное использование кода: Позволяет повторно использовать общий алгоритм, избегая дублирования кода. 2️⃣ Контроль над структурой алгоритма: Обеспечивает контроль над основной структурой алгоритма, позволяя изменять только определённые его шаги. 3️⃣ Инкапсуляция неизменных частей алгоритма: Позволяет инкапсулировать части алгоритма, которые не должны изменяться, и делать изменяемыми только необходимые шаги. 🤔 Как работает данный паттерн? Паттерн включает следующие компоненты: ➕ Абстрактный класс: Определяет шаблонный метод, который реализует скелет алгоритма, и абстрактные методы для шагов, которые должны быть реализованы в подклассах. ➕ Конкретные подклассы: Реализуют абстрактные методы для конкретных шагов алгоритма.
from abc import ABC, abstractmethod

# Абстрактный класс с шаблонным методом
class Beverage(ABC):
    def prepare_recipe(self):
        self.boil_water()
        self.brew()
        self.pour_in_cup()
        self.add_condiments()

    def boil_water(self):
        print("Boiling water")

    def pour_in_cup(self):
        print("Pouring into cup")

    @abstractmethod
    def brew(self):
        pass

    @abstractmethod
    def add_condiments(self):
        pass

# Конкретный подкласс для кофе
class Coffee(Beverage):
    def brew(self):
        print("Dripping Coffee through filter")

    def add_condiments(self):
        print("Adding Sugar and Milk")

# Конкретный подкласс для чая
class Tea(Beverage):
    def brew(self):
        print("Steeping the tea")

    def add_condiments(self):
        print("Adding Lemon")

# Клиентский код
def prepare_beverage(beverage: Beverage):
    beverage.prepare_recipe()

coffee = Coffee()
tea = Tea()

print("Making coffee:")
prepare_beverage(coffee)

print("\nMaking tea:")
prepare_beverage(tea)
🤔 Преимущества: 1️⃣ Повторное использование кода: Избегает дублирования кода, предоставляя общий алгоритм с изменяемыми шагами. 2️⃣ Инкапсуляция изменений: Изолирует изменяемые части алгоритма в подклассы. 3️⃣ Контроль структуры алгоритма: Обеспечивает строгий контроль над основной структурой алгоритма. 🤔 Недостатки: 1️⃣ Ограниченная гибкость: Если шаблонный метод требует изменения, все подклассы могут нуждаться в изменении. 2️⃣ Усложнение структуры кода: Может привести к созданию большого количества подклассов для реализации различных шагов алгоритма. 🤔 Когда использовать данный паттерн? ➕ Когда требуется использовать один и тот же алгоритм в нескольких подклассах с различиями в отдельных шагах. ➕ Когда необходимо избежать дублирования кода, инкапсулируя изменяемые части алгоритма. ➕ Когда нужно контролировать структуру алгоритма, предоставляя возможность изменять только отдельные его шаги. Паттерн "Шаблонный метод" является мощным инструментом для организации кода и управления алгоритмами, предоставляя возможность изменять отдельные шаги алгоритма без изменения его основной структуры. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

Повышенный гонорар за технические статьи в блог на Хабре Если вы уже автор Хабра или работаете в сфере IT и чувствуете в себе
Повышенный гонорар за технические статьи в блог на Хабре Если вы уже автор Хабра или работаете в сфере IT и чувствуете в себе творческий потенциал, то оставшиеся летние дни — прекрасная возможность посвятить себя писательскому делу! Мы запустили акцию для технических авторов и повысили гонорар за статьи в наш блог на Хабр до 22 000 рублей. Ждем материалы о системном администрировании, программировании, хостинге и серверном оборудовании. Акция действует до 29 августа. Узнать больше #реклама firstvds.ru О рекламодателе

🤔 Какое утверждение верно относительно GIL (Global Interpreter Lock) в CPython?
Anonymous voting

Jobski - твой помощник при поиске работы в IT Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек техно
Jobski - твой помощник при поиске работы в IT Сервис индивидуально подбирает вакансии, учитывая ваш опыт, навыки и стек технологий. Узнать больше #реклама jobski.ru О рекламодателе

📌 Что такое паттерн Стратегия (Strategy) ? 💬 Спрашивают в 3% собеседований Паттерн "Стратегия" (Strategy) — это поведенческий паттерн проектирования, который определяет семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Паттерн "Стратегия" позволяет изменять алгоритмы независимо от клиентов, которые их используют. 🤔 Зачем нужен данный паттерн? 1️⃣ Изоляция алгоритмов: Позволяет инкапсулировать различные алгоритмы и использовать их независимо. 2️⃣ Упрощение кода: Устраняет дублирование кода и упрощает классы, которые используют эти алгоритмы. 3️⃣ Гибкость и расширяемость: Легко добавлять новые алгоритмы или изменять существующие без изменения клиентского кода. 🤔 Как работает данный паттерн? Паттерн включает следующие компоненты: ➕ Стратегия (Strategy): Интерфейс, определяющий общий метод, который должны реализовать все алгоритмы. ➕ Конкретные стратегии (ConcreteStrategy): Реализации различных алгоритмов, которые реализуют интерфейс стратегии. ➕ Контекст (Context): Класс, использующий стратегию для выполнения задачи.
from abc import ABC, abstractmethod

# Интерфейс стратегии
class Strategy(ABC):
    @abstractmethod
    def sort(self, data):
        pass

# Конкретные стратегии
class BubbleSortStrategy(Strategy):
    def sort(self, data):
        print("Sorting using Bubble Sort")
        for i in range(len(data)):
            for j in range(0, len(data)-i-1):
                if data[j] > data[j+1]:
                    data[j], data[j+1] = data[j+1], data[j]

class QuickSortStrategy(Strategy):
    def sort(self, data):
        print("Sorting using Quick Sort")
        self.quick_sort(data, 0, len(data) - 1)

    def quick_sort(self, data, low, high):
        if low < high:
            pi = self.partition(data, low, high)
            self.quick_sort(data, low, pi - 1)
            self.quick_sort(data, pi + 1, high)

    def partition(self, data, low, high):
        pivot = data[high]
        i = low - 1
        for j in range(low, high):
            if data[j] <= pivot:
                i = i + 1
                data[i], data[j] = data[j], data[i]
        data[i + 1], data[high] = data[high], data[i + 1]
        return i + 1

# Контекст
class SortingContext:
    def __init__(self, strategy: Strategy):
        self._strategy = strategy

    def set_strategy(self, strategy: Strategy):
        self._strategy = strategy

    def sort(self, data):
        self._strategy.sort(data)

# Клиентский код
data = [5, 2, 9, 1, 5, 6]

context = SortingContext(BubbleSortStrategy())
context.sort(data)
print(data)  # [1, 2, 5, 5, 6, 9]

context.set_strategy(QuickSortStrategy())
data = [3, 7, 8, 5, 2, 1, 9, 5, 4]
context.sort(data)
print(data)  # [1, 2, 3, 4, 5, 5, 7, 8, 9]
🤔 Преимущества: 1️⃣ Изоляция алгоритмов: Алгоритмы инкапсулируются в отдельные классы, что упрощает их замену и добавление. 2️⃣ Упрощение кода: Контекст использует стратегии, избегая громоздких условных операторов. 3️⃣ Гибкость и расширяемость: Легко добавлять новые стратегии без изменения существующего кода. Недостатки: 1️⃣ Усложнение структуры кода: Добавление множества классов стратегий может усложнить проект. 2️⃣ Контекст знает о стратегиях: Контекст должен знать о всех возможных стратегиях, чтобы иметь возможность их переключать. 🤔 Когда использовать данный паттерн? ➕ Когда есть несколько вариантов алгоритмов для выполнения задачи. ➕ Когда нужно динамически выбирать алгоритм во время выполнения. ➕ Когда необходимо избежать множества условных операторов для выбора алгоритма. Паттерн "Стратегия" является мощным инструментом для управления алгоритмами и их выбора в зависимости от конкретной ситуации, улучшая гибкость и расширяемость кода. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

🤬 Постоянные ошибки, как они надоели! 🤯 Планируя свои дела, мы забываем, что оборудование может подвести. Это может перекры
🤬 Постоянные ошибки, как они надоели! 🤯 Планируя свои дела, мы забываем, что оборудование может подвести. Это может перекрыть все рабочие планы. Придется гуглить, смотреть видосы, звонить знакомым "Не встречалась ли тебе такая ошибка?" 🥵 Все это время и силы. Наша команда нашла этому решение - Битый код. Канал, который даст тебе базу в мире ошибок. 🍸 Стань тем человеком, к которому будут обращаться и про которого будут говорить "Он сможет помочь"

Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие п
Методичка: как сделать онлайн-встречи эффективнее Надоело ждать коллег, которые постоянно забывают о встречах, а отсутствие повестки и потерянные договоренности мешают нормально работать? Команда МТС Линк собрала на 37 страницах полезные материалы, чек-листы и кейсы, которые помогают компаниям проводить эффективные совещания в онлайне с помощью сервиса Встречи. Из методички узнаете: - Как создать постоянную ссылку и подключаться на встречи в 2 клика, - Как делать заметки и работать с файлами, не переживая за качество связи и безопасность данных. - Как облегчает жизнь ИИ, который расшифровывает созвоны в текст и автоматически отправляет расшифровку на почту. Еще в методичке описаны 7 способов оценки текущей эффективности ваших онлайн-встреч. Получить гайд можно бесплатно на сайте. Скачать #реклама mts-link.ru О рекламодателе

🤔 Какой метод используется для вычисления декартова произведения двух списков?
Anonymous voting

📌 Что такое паттерн Состояние (State) ? 💬 Спрашивают в 3% собеседований Паттерн "Состояние" (State) — это поведенческий паттерн проектирования, который позволяет объекту изменять свое поведение в зависимости от его внутреннего состояния. Внешне это выглядит так, как будто объект изменил свой класс. Этот паттерн особенно полезен, когда объект может находиться в нескольких состояниях, каждое из которых определяет его поведение. 🤔 Зачем нужен данный паттерн? 1️⃣ Управление состояниями: Позволяет управлять сложными состояниями объекта, организуя код более структурировано. 2️⃣ Изолирование состояний: Разделяет код, относящийся к разным состояниям, что упрощает его поддержку и модификацию. 3️⃣ Изменение поведения во время выполнения: Объект может динамически изменять своё поведение в зависимости от текущего состояния. 🤔 Как работает данный паттерн? Паттерн включает следующие компоненты: ➕ Контекст (Context): Объект, который содержит ссылку на текущий объект состояния и делегирует ему выполнение поведения. ➕ Состояние (State): Интерфейс или абстрактный класс, определяющий общие методы для всех конкретных состояний. ➕ Конкретные состояния (ConcreteState): Классы, реализующие конкретное поведение в зависимости от состояния.
from abc import ABC, abstractmethod

# Интерфейс состояния
class State(ABC):
    @abstractmethod
    def insert_coin(self, context):
        pass

    @abstractmethod
    def press_button(self, context):
        pass

    @abstractmethod
    def dispense(self, context):
        pass

# Конкретные состояния
class NoCoinState(State):
    def insert_coin(self, context):
        print("Coin inserted.")
        context.state = context.has_coin_state

    def press_button(self, context):
        print("Insert coin first.")

    def dispense(self, context):
        print("Insert coin first.")

class HasCoinState(State):
    def insert_coin(self, context):
        print("Coin already inserted.")

    def press_button(self, context):
        print("Button pressed.")
        context.state = context.sold_state

    def dispense(self, context):
        print("Press button to dispense.")

class SoldState(State):
    def insert_coin(self, context):
        print("Wait! Dispensing in progress.")

    def press_button(self, context):
        print("Wait! Dispensing in progress.")

    def dispense(self, context):
        print("Ticket dispensed.")
        context.state = context.no_coin_state

# Контекст
class TicketMachine:
    def __init__(self):
        self.no_coin_state = NoCoinState()
        self.has_coin_state = HasCoinState()
        self.sold_state = SoldState()
        self.state = self.no_coin_state

    def insert_coin(self):
        self.state.insert_coin(self)

    def press_button(self):
        self.state.press_button(self)

    def dispense(self):
        self.state.dispense(self)

# Клиентский код
machine = TicketMachine()

machine.insert_coin()  # Coin inserted.
machine.press_button() # Button pressed.
machine.dispense()     # Ticket dispensed.

machine.press_button() # Insert coin first.
machine.insert_coin()  # Coin inserted.
machine.dispense()     # Press button to dispense.
machine.press_button() # Button pressed.
machine.dispense()     # Ticket dispensed.
🤔 Преимущества: 1️⃣ Управление состояниями: Упрощает управление сложными состояниями объекта. 2️⃣ Изолирование состояний: Позволяет разделить код, относящийся к разным состояниям. 3️⃣ Динамическое изменение поведения: Объект может динамически изменять своё поведение. 🤔 Недостатки: 1️⃣ Усложнение кода: Добавление большого количества классов состояний может усложнить код. 2️⃣ Повышенные накладные расходы: Частые изменения состояния могут привести к дополнительным накладным расходам. Паттерн "Состояние" является мощным инструментом для управления состояниями объекта и изменением его поведения в зависимости от этих состояний, что упрощает код и улучшает его структуру. 🔥 ТОП ВОПРОСОВ С СОБЕСОВ 🔒 База собесов | 🔒 База тестовых

На эти IT-стажировки берут без опыта В канале собраны самые свежие предложения от крупнейших российских компаний: VK, Сбера,
На эти IT-стажировки берут без опыта В канале собраны самые свежие предложения от крупнейших российских компаний: VK, Сбера, Яндекса и многих других. Теперь можно не откладывать начало карьеры в IT, ведь здесь вы найдете: — стажировки для молодых специалистов; — анонсы хакатонов, которые будут выгодно смотреться в резюме; — карьерные и образовательные ивенты для прокачки hard и soft skills. Подписаться #реклама О рекламодателе

🤔 Что такое list comprehension в Python и для чего оно используется?
Anonymous voting

Такси для бизнеса. Яндекс Go Оптимизируйте свои расходы и повысьте эффективность бизнеса с Яндекс Go Узнать больше #реклама b
Такси для бизнеса. Яндекс Go Оптимизируйте свои расходы и повысьте эффективность бизнеса с Яндекс Go Узнать больше #реклама business.go.yandex О рекламодателе