ru
Feedback

Не попадитесь на канал ботавода! Telemetrio находит и помечает такие каналы 👉 Хотите видеть метку — оформите подписку

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

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

Открыть в Telegram

📈 Аналитический обзор Telegram-канала Python | Вопросы собесов

Канал Python | Вопросы собесов (@python_easy_ru) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 12 632 подписчиков, занимая 9 924 место в категории Технологии и приложения и 51 115 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 12 632 подписчиков.

Согласно последним данным от 17 октября, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -111, а за последние 24 часа — 0, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 6.00%. В первые 24 часа после публикации контент обычно набирает 4.29% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 758 просмотров. В течение первых суток публикация набирает 542 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 2.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как ставь, модуль, строка, docker, alice.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
“Сайт: https://easyoffer.ru/ Все каналы: t.me/+xGeAw6ckJ4liYzQy Контакт для рекламы: @sendme_ads”

Благодаря высокой частоте обновлений (последние данные получены 18 октября, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

12 632
Подписчики
Нет данных24 часа
-257 дней
-11130 дней
Архив постов
Какая транзакция в SQL не соответствует принципу Durability в ACID, если система перезагружается во время выполнения?
Anonymous voting

На что влияет атрибут slots ? Спросят с вероятностью 3% Атрибут __slots__ используется для ограничения атрибутов, которые можно добавлять экземплярам класса, и для оптимизации использования памяти. Это особенно полезно в сценариях, где создаётся много объектов одного класса. Как он работает По умолчанию, Python использует словарь (__dict__) для хранения атрибутов экземпляров. Это даёт большую гибкость, но также приводит к значительному расходу памяти. Когда вы определяете атрибут slots в классе, вы тем самым ограничиваете класс набором конкретных атрибутов. Это убирает необходимость в словаре для хранения атрибутов и может значительно сократить использование памяти. Пример использования
class RegularClass:
    def __init__(self, x, y):
        self.x = x
        self.y = y

class SlotsClass:
   _(self, x, = ['x', 'y']

    def __init__(self, x, y):
        self.x = x
        self.y = y

# Создадим экземпляры классов
regular_instance = RegularClass(1, 2)
slots_instance = SlotsClass(1, 2)

# Попробуем добавить новый атрибут
regular_instance.z = 3  # Это работает
# slots_instance.z = 3  # Это вызовет ошибку AttributeError

print(regular_instance.__dict__)  # {'x': 1, 'y': 2, 'z': 3}
# print(slots_instance.__dict__)  # AttributeError: 'SlotsClass' object has no attribute '__dict__'

# Проверим использование памяти
import sys
print(sys.getsizeof(regular_instance))  # Выведет размер в байтах
print(sys.getsizeof(slots_instance))    # Выведет размер в байтах, который будет меньше
Объяснение 1️⃣Ограничение атрибутов: ✅В классе RegularClass можно добавлять любые атрибуты, так как используется словарь (__dict__). ✅ В классе SlotsClass можно добавлять только атрибуты, указанные в
= x
       
2️⃣Использование памяти: ✅Экземпляры класса состью 3% Азанимают меньше памяти, так как для хранения атрибутов не используется словарь. ✅Это может существенно уменьшить использование памяти в случаях, когда создаётся много экземпляров класса. Преимущества: ✅Снижение использования памяти: Экономия памяти за счёт отказа от словарей для хранения атрибутов. ✅Ускорение доступа к атрибутам: Быстрый доступ к атрибутам благодаря фиксированному набору атрибутов. Недостатки: ✅Ограничение гибкости: Невозможно добавлять новые атрибуты, не указанные в_slots__ в ✅Наследование: Классы-наследники должны явно указывать slots, чтобы сохранить оптимизацию. Атрибут slots ограничивает набор атрибутов экземпляров класса и уменьшает использование памяти за счёт отказа от словарей для хранения атрибутов. Это повышает эффективность, но уменьшает гибкость. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

Какое максимально допустимое количество символов рекомендует PEP8 использовать в строке кода?
Anonymous voting

Как бы реализовал паттерн singleton ? Спросят с вероятностью 3% Паттерн Singleton используется для того, чтобы создать класс, который имеет только один экземпляр. Это полезно, когда нужно ограничить количество объектов, например, для управления ресурсами (как подключение к базе данных) или для хранения глобального состояния. Существует несколько способов реализовать Singleton. Рассмотрим один из наиболее распространенных способов - использование приватного конструктора и класса-метода для получения экземпляра.
class Singleton:
    __instance = None

    def __new__(cls, args, kwargs):
        if cls.__instance is None:
            cls.__instance = super(Singleton, cls).__new__(cls, args, kwargs)
        return cls.__instance

    def __init__(self):
        if not hasattr(self, 'initialized'):
            self.initialized = True
            # Инициализация объекта, если нужно
            self.value = 0

# Проверка работы
singleton1 = Singleton()
singleton2 = Singleton()

print(singleton1 is singleton2)  # Выведет: True
print(singleton1.value)          # Выведет: 0
singleton1.value = 42
print(singleton2.value)          # Выведет: 42
Объяснение кода 1️⃣Приватный атрибут _instance_: ✅Этот атрибут используется для хранения единственного экземпляра класса. 2️⃣Метод __new__: ✅__new__ - это метод, который создаёт новый экземпляр класса. Если экземпляр уже существует (cls.__instance не None), возвращается существующий экземпляр. ✅Если экземпляр ещё не был создан, super(Singleton, cls).__new__(cls, args, kwargs) создаёт новый экземпляр и сохраняет его в cls.__instance. 3️⃣Метод init: ✅Методреализовалвызывается каждый раз при создании экземпляра. Чтобы избежать повторной инициализации, проверяем наличие атрибута initialized. Можно также реализовать Singleton с помощью декоратора:
def singleton(cls):
    instances = {}
    def get_instance(*args, **kwargs):
        if cls not in instances:
            instances[cls] = cls(*args, **kwargs)
        return instances[cls]
    return get_instance

@singleton
class SingletonClass:
    def __init__(self):
        self.value = 0

# Проверка работы
singleton1 = SingletonClass()
singleton2 = SingletonClass()

print(singleton1 is singleton2)  # Выведет: True
print(singleton1.value)          # Выведет: 0
singleton1.value = 42
print(singleton2.value)          # Выведет: 42
Объяснение 1️⃣Декоратор singleton: ✅Хранит экземпляры класса в словаре instances. ✅Если экземпляра класса ещё нет в словаре, он создаётся и добавляется в словарь. ✅Возвращается существующий или новый экземпляр класса. Паттерн Singleton гарантирует, что класс имеет только один экземпляр. Это достигается контролем создания экземпляров через методые None), или декоратор. Singleton полезен для управления ресурсами и глобального состояния. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

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

Как связаны new и singleton ? Спросят с вероятностью 3% Методы __new__ и паттерн Singleton тесно связаны, поскольку методью 3% Мечасто используется для реализации Singleton в Python. Singleton — это паттерн проектирования, который гарантирует, что у класса будет только один экземпляр на протяжении всего жизненного цикла приложения. Метод new отвечает за создание нового экземпляра класса, и именно его можно использовать для контроля создания объектов. Метод new — это специальный метод, который вызывается перед методом init. Он отвечает за создание и возвращение нового экземпляра класса. В отличие от метода init, который инициализирует уже существующий объект, new создаёт новый объект класса. Пример использования new в Singleton Для реализации паттерна Singleton с использованием метода new нужно сделать так, чтобы метод new возвращал один и тот же экземпляр класса при каждом вызове. Пример кода:
class Singleton:
    _instance = None

    def __new__(cls, *args, **kwargs):
        if cls._instance is None:
            cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
        return cls._instance

    def __init__(self, value):
        if not hasattr(self, '_initialized'):  # Проверка на инициализацию
            self.value = value
            self._initialized = True

# Проверка работы Singleton
singleton1 = Singleton("First Instance")
print(singleton1.value)  # Вывод: First Instance

singleton2 = Singleton("Second Instance")
print(singleton2.value)  # Вывод: First Instance

print(singleton1 is singleton2)  # Вывод: True
Пошаговое объяснение: 1️⃣Статический атрибут _instance: Используется для хранения единственного экземпляра класса.
2️⃣
Метод
eton1 = Sin
✅Проверяет, существует ли уже экземпляр класса (cls._instance is None). ✅Если не существует, создаёт новый экземпляр с помощью super(Singleton, cls).new(cls, args, kwargs) и сохраняет его в cls._instance. ✅Возвращает экземпляр класса, хранящийся в cls._instance. 3️⃣Метод init: ✅Инициализирует экземпляр только один раз. Проверка if not hasattr(self, '_initialized') предотвращает повторную инициализацию объекта. Почему Singleton и new связаны ✅Контроль создания объектов: Метод new позволяет контролировать процесс создания объекта, что идеально подходит для реализации Singleton. ✅Единственность экземпляра: С помощью new можно гарантировать, что будет создан только один экземпляр класса, поскольку new может возвращать уже существующий экземпляр. ✅Разделение обязанностей: Метод new отвечает за создание (или возврат существующего) экземпляра, а метод init — за его инициализацию, если это необходимо. Метод new используется для создания новых экземпляров класса и идеально подходит для реализации паттерна Singleton, так как позволяет контролировать создание единственного экземпляра класса и возвращать его при каждом вызове. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

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

В чем основные принципы инкапсуляции ? Спросят с вероятностью 3% Инкапсуляция является одним из основных принципов объектно-ориентированного программирования (ООП). Она подразумевает объединение данных и методов, работающих с этими данными, в единый объект, а также скрытие внутренней реализации этого объекта от внешнего мира. Это достигается с помощью контроля доступа к атрибутам и методам класса. Основные принципы инкапсуляции включают: 1️⃣Сокрытие данных Заключается в ограничении прямого доступа к атрибутам объекта. Это достигается с помощью модификаторов доступа, таких как публичные, защищенные и приватные атрибуты. Пример: Публичные атрибуты: Доступны отовсюду.
    class MyClass:
      def __init__(self):
          self.public_attribute = "Public"
2️⃣Контроль доступа к данным Осуществляется с помощью геттеров и сеттеров (методы для получения и изменения значений атрибутов). Это позволяет добавить логику в методы доступа, например, проверку корректности значений. Пример:
class MyClass:
    def __init__(self):
        self.__private_attribute = "Initial Value"
    
    def get_private_attribute(self):
        return self.__private_attribute
    
    def set_private_attribute(self, value):
        if isinstance(value, str):
            self.__private_attribute = value
        else:
            raise ValueError("Value must be a string")

obj = MyClass()
print(obj.get_private_attribute())  # Вывод: Initial Value
obj.set_private_attribute("New Value")
print(obj.get_private_attribute())  # Вывод: New Value
3️⃣Изоляция внутренней реализации Позволяет изолировать внутреннюю реализацию объекта от внешнего мира. Внешний код использует только публичные методы для взаимодействия с объектом, не зная о деталях его внутренней структуры. Пример:
class BankAccount:
    def __init__(self, balance):
        self.__balance = balance
    
    def deposit(self, amount):
        if amount > 0:
            self.__balance += amount
        else:
            raise ValueError("Deposit amount must be positive")
    
    def withdraw(self, amount):
        if 0 < amount <= self.__balance:
            self.__balance -= amount
        else:
            raise ValueError("Invalid withdraw amount")
    
    def get_balance(self):
        return self.__balance

account = BankAccount(1000)
account.deposit(500)
print(account.get_balance())  # Вывод: 1500
account.withdraw(200)
print(account.get_balance())  # Вывод: 1300
4️⃣Повышение надежности и упрощение сопровождения кода Внутренние детали реализации могут быть изменены без влияния на внешний код. Это делает код более надежным и легким в сопровождении. Пример: Изменение внутренней реализации:
    class BankAccount:
      def __init__(self, balance):
          self.__balance = balance
      
      def deposit(self, amount):
          if amount > 0:
              self.__balance += amount
          else:
              raise ValueError("Deposit amount must be positive")
      
      def withdraw(self, amount):
          if 0 < amount <= self.__balance:
              self.__balance -= amount
          else:
              raise ValueError("Invalid withdraw amount")
      
      def get_balance(self):
          return self.__balance

  # Внешний код не изменяется
  account = BankAccount(1000)
  account.deposit(500)
  print(account.get_balance())  # Вывод: 1500
  account.withdraw(200)
  print(account.get_balance())  # Вывод: 1300
  
Инкапсуляция объединяет данные и методы в объекте, скрывая внутреннюю реализацию и предоставляя публичный интерфейс для взаимодействия. Это улучшает надежность, безопасность и сопровождение кода. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

Привет! Ты сейчас ищешь работу? Если да, то у меня для тебя классные новости. Мы с Максом решили провести вебинар на тему пои
Привет! Ты сейчас ищешь работу? Если да, то у меня для тебя классные новости. Мы с Максом решили провести вебинар на тему поиска работы и того, как быстрее получить оффер. Зачем? Да потому что найти работу просто откликаясь на вакансии теперь практически нереально. На Junior вакансии откликаются по 1500 кандидатов. 1500 человек, Карл... Вопрос: Как искать работу в таких условиях? Ответ: Нужно менять подходы, и использовать новые способы поиска работы. А вот какие способы, и как искать работу в 2024 году, расскажет мой товарищ - Макс, который помогает разработчикам с трудоустройством. Он расскажет тебе как ПРАВИЛЬНО откликаться на вакансии, на что смотрят рекрутеры, и как ты должен быть упакован, чтобы получить работу в это непростое время. 🗓 Когда? Во вторник – 18 июня, в 19:00 по мск. 🎁 После регистрации он также обещал прислать: 1) Анализ рынка труда. 2) Разбор кейсов тех, кто сейчас находит работу. 3) Пошаговый план, что нужно делать, чтобы прийти к оферу. 👉 Записаться на вебинар по поиску работы.

Как Python определяет порядок разрешения методов (MRO) в множественном наследовании?
Anonymous voting

🔥Тесты для подготовки к собеседованию🔥 Выбери своё направление: 1. Frontend 2. Python 3. Java 4. Тестировщик QA 5. Data Sci
🔥Тесты для подготовки к собеседованию🔥 Выбери своё направление: 1. Frontend 2. Python 3. Java 4. Тестировщик QA 5. Data Science 6. DevOps 7. C# 8. С/C++ 9. Golang 10. PHP 11. Kotlin 12. Swift

Какие паттерны проектирования используешь ? Спросят с вероятностью 3% Паттерны проектирования являются повторяемыми решениями общих проблем проектирования в объектно-ориентированном программировании. Они помогают создавать гибкие и легко поддерживаемые системы. Вот некоторые из наиболее часто используемых паттернов проектирования: 1️⃣Одиночка (Singleton) Цель: Гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру. Пример кода:
class Singleton:
    _instance = None

    def __new__(cls, *args, **kwargs):
        if not cls._instance:
            cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
        return cls._instance

singleton1 = Singleton()
singleton2 = Singleton()
print(singleton1 is singleton2)  # Вывод: True
2️⃣Строитель (Builder) Цель: Отделяет создание сложного объекта от его представления, позволяя использовать один и тот же процесс создания для различных представлений. Пример кода:
class Product:
    def __init__(self):
        self.parts = []

    def add(self, part):
        self.parts.append(part)

    def show(self):
        return ", ".join(self.parts)

class Builder:
    def build_part_a(self):
        pass

    def build_part_b(self):
        pass

class ConcreteBuilder(Builder):
    def __init__(self):
        self.product = Product()

    def build_part_a(self):
        self.product.add("Part A")

    def build_part_b(self):
        self.product.add("Part B")

    def get_product(self):
        return self.product

class Director:
    def __init__(self, builder):
        self._builder = builder

    def construct(self):
        self._builder.build_part_a()
        self._builder.build_part_b()

builder = ConcreteBuilder()
director = Director(builder)
director.construct()
product = builder.get_product()
print(product.show())  # Вывод: Part A, Part B
3️⃣Фабричный метод (Factory Method) Цель: Определяет интерфейс для создания объекта, но позволяет подклассам изменить тип создаваемого объекта. Пример кода:
class Product:
    def operation(self):
        pass

class ConcreteProductA(Product):
    def operation(self):
        return "ConcreteProductA"

class ConcreteProductB(Product):
    def operation(self):
        return "ConcreteProductB"

class Creator:
    def factory_method(self):
        pass

    def some_operation(self):
        product = self.factory_method()
        return f"Creator: The same creator's code has just worked with {product.operation()}"

class ConcreteCreatorA(Creator):
    def factory_method(self):
        return ConcreteProductA()

class ConcreteCreatorB(Creator):
    def factory_method(self):
        return ConcreteProductB()

creator_a = ConcreteCreatorA()
print(creator_a.some_operation())  # Вывод: Creator: The same creator's code has just worked with ConcreteProductA

creator_b = ConcreteCreatorB()
print(creator_b.some_operation())  # Вывод: Creator: The same creator's code has just worked with ConcreteProductB
Использование паттернов проектирования помогает создавать гибкие, масштабируемые и легко поддерживаемые системы. Они позволяют решать типичные задачи проектирования, избегая распространенных ошибок. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

Почему тебя не зовут на интервью? Исправь это в своем резюме… Получить приглашение на интервью сейчас сложнее, чем с нуля обу
Почему тебя не зовут на интервью? Исправь это в своем резюме… Получить приглашение на интервью сейчас сложнее, чем с нуля обучиться разработке. И к сожалению, это не шутка. Скорее всего только 1-2% работодателей сейчас позовут тебя на интервью. Это статистика, которую мы собирали по 10.000 откликам. Но над этой цифрой можно и нужно работать. Если правильно оформить свое резюме, и поменять свою стратегию с откликами, то конверсию можно увеличить до 10%. Т.е почти в 10 раз! Как это сделать? 1. Проверить свое резюме по нашему чек листу, и внести в него то, чего будет не хватать. 2. Поменять свой подход к поиску работы, ведь одними откликами на hh.ru сыт не будешь. 18 июня, в 18:00 по москве, мы вместе с Максом из CodeReview проведем вебинар на тему эффективного поиска работы в 2024 году. На нем Макс покажет как сейчас нужно искать работу. В прямом эфире. А также раскроет что именно нужно писать в свое резюме, чтобы оно ПРОДАВАЛО. Получить чек лист по составлению резюме, а также зарегистрироваться на вебинар можно по этой ссылке. Регистрируйся сейчас и увидимся 18 июня, в 18:00 по мск. 👉 Зарегистрироваться и получить чек-лист по резюме.

Какое утверждение наилучшим образом описывает роль миксина?
Anonymous voting

Чем отличаются методы сокрытия ? Спросят с вероятностью 3% Методы и атрибуты класса могут быть скрыты от внешнего использования с помощью различных уровней сокрытия. Сокрытие реализуется с помощью соглашений об именах, а не с помощью жесткой инкапсуляции, как в некоторых других языках программирования. Основные уровни сокрытия включают публичные, защищенные и приватные методы и атрибуты. Публичные методы и атрибуты Доступны из любого места, как внутри класса, так и за его пределами. Их имена не начинаются с подчеркиваний. Пример:
class MyClass:
    def __init__(self):
        self.public_attribute = "I am public"
    
    def public_method(self):
        return "This is a public method"

obj = MyClass()
print(obj.public_attribute)  # Вывод: I am public
print(obj.public_method())   # Вывод: This is a public method
Защищенные методы и атрибуты Не предназначены для использования за пределами класса и его подклассов. Они обозначаются одним подчеркиванием в начале имени. Это всего лишь соглашение, сигнализирующее другим разработчикам, что такие методы и атрибуты не следует использовать вне класса или его подклассов. Пример:
class MyClass:
    def __init__(self):
        self._protected_attribute = "I am protected"
    
    def _protected_method(self):
        return "This is a protected method"

class SubClass(MyClass):
    def access_protected(self):
        return self._protected_method()

obj = MyClass()
sub_obj = SubClass()

print(sub_obj.access_protected())  # Вывод: This is a protected method
Приватные методы и атрибуты Скрыты от внешнего доступа и доступны только внутри самого класса. Они обозначаются двумя подчеркиваниями в начале имени. Python реализует это с помощью механизма именования, который изменяет имя метода или атрибута, добавляя к нему имя класса, чтобы затруднить доступ извне. Пример:
class MyClass:
    def __init__(self):
        self.__private_attribute = "I am private"
    
    def __private_method(self):
        return "This is a private method"
    
    def access_private(self):
        return self.__private_method()

obj = MyClass()

try:
    print(obj.__private_attribute)
except AttributeError as e:
    print(e)  # Вывод: 'MyClass' object has no attribute '__private_attribute'

try:
    print(obj.__private_method())
except AttributeError as e:
    print(e)  # Вывод: 'MyClass' object has no attribute '__private_method'

# Доступ к приватным методам через публичный метод класса
print(obj.access_private())  # Вывод: This is a private method
Почему это важно ✅Инкапсуляция: Сокрытие позволяет инкапсулировать данные и методы, защищая внутреннее состояние объекта и предотвращая неправильное использование или изменение извне. ✅Читаемость и поддерживаемость: Соглашения об именах помогают разработчикам понять, какие методы и атрибуты предназначены для внутреннего использования, а какие могут быть использованы внешними клиентами. ✅Безопасность кода: Защищенные и приватные методы и атрибуты снижают риск случайного изменения внутреннего состояния объекта, обеспечивая более надежное и предсказуемое поведение программного кода. ✅Публичные методы и атрибуты доступны отовсюду. ✅Защищенные методы и атрибуты обозначаются одним подчеркиванием и предназначены для использования только внутри класса и его подклассов. ✅Приватные методы и атрибуты обозначаются двумя подчеркиваниями и доступны только внутри класса. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых

Как оформить свой профиль на Github, чтобы работодатель тебя заметил? Хей! А ты знал, что 68% работодателей отбирают себе jun
Как оформить свой профиль на Github, чтобы работодатель тебя заметил? Хей! А ты знал, что 68% работодателей отбирают себе junior разработчиков основываясь на их портфолио на Github? Следовательно если ты никогда не занимался оформлением своего Github портфолио и профиля – тебе вероятнее всего пришлют отказ. Это работает именно у начинающих разработчиков. И что делать в таком случае? – На самом деле страшного ничего нет, нужно просто уделить время и оформить его по чек листу, который подготовил Макс из codereview со своей командой. Получить этот чек лист ты можешь по этой ссылке. Помимо чек листа, мы с Максом проведем вебинар 18 июня в 18:00 по мск, на тему того, как искать эффективно искать работу разработчиком в 2024 году. Чек лист будет доступен после регистрации на вебинар. 👉 Регистрируйся по этой ссылке.

Привет, мне нужно несколько контент-менеджеров для новых телеграм каналов в тематике программирования. Если вам интересна такая работа напиши мне @kivaiko и лучше сразу напишите какие языки программирования учите/знаете

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

⚡Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь: Хакинг: t.me/linuxkalii Python полная подготовка с собесу: t.me/python_job_interview Машинное обучение: t.me/ai_machinelearning_big_data АНАЛИЗ Данных на Python: t.me/data_analysis_ml Linux: https://t.me/linuxacademiya Базы данных: t.me/sqlhub Go: t.me/Golang_google C++/ t.me/cpluspluc Java: t.me/javatg C#: t.me/csharp_ci Мобильная разработка: t.me/mobdevelop Docker: t.me/+0WdB4uvOwCY0Mjdi Python: t.me/pythonl Rust: t.me/rust_code Javascript: t.me/javascriptv React: t.me/react_tg PHP: t.me/phpshka Android: t.me/android_its Big Data: t.me/bigdatai Devops: t.me/devOPSitsec Собеседования: t.me/machinelearning_interview Python лучшие книги бесплатно: t.me/pythonlbooks 💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy 😆ИТ-Мемы: t.me/memes_prog 🇬🇧Английский: t.me/english_forprogrammers ИИ: t.me/vistehno 📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy

Как создать абстрактный класс ? Спросят с вероятностью 3% Для создания абстрактного класса используется модуль abc (Abstract Base Classes). Абстрактный класс - это класс, который не может быть инстанцирован, и который обычно содержит один или несколько абстрактных методов. Абстрактный метод - это метод, который объявлен, но не реализован в абстрактном классе. Подклассы обязаны реализовать все абстрактные методы, чтобы быть инстанцированными. Шаги для создания абстрактного класса 1️⃣Импорт модуля abc. 2️⃣Создание класса, наследующего ABC: Ваш абстрактный класс должен наследоваться от ABC, который является базовым классом для определения абстрактных классов. 3️⃣Определение абстрактных методов с помощью декоратора @abstractmethod: Методы, которые должны быть реализованы в подклассах, помечаются этим декоратором. Пример кода
from abc import ABC, abstractmethod

# Определение абстрактного класса
class Animal(ABC):
    @abstractmethod
    def make_sound(self):
        pass

    @abstractmethod
    def move(self):
        pass

# Попытка создать экземпляр абстрактного класса вызовет ошибку
try:
    animal = Animal()
except TypeError as e:
    print(e)  # Вывод: Can't instantiate abstract class Animal with abstract methods make_sound, move

# Подкласс, реализующий все абстрактные методы
class Dog(Animal):
    def make_sound(self):
        return "Woof!"

    def move(self):
        return "Runs"

# Создание экземпляра подкласса
dog = Dog()
print(dog.make_sound())  # Вывод: Woof!
print(dog.move())        # Вывод: Runs

# Подкласс, не реализующий все абстрактные методы
class Fish(Animal):
    def move(self):
        return "Swims"

# Попытка создать экземпляр неполного подкласса вызовет ошибку
try:
    fish = Fish()
except TypeError as e:
    print(e)  # Вывод: Can't instantiate abstract class Fish with abstract methods make_sound
Объяснение примера ✅Абстрактный класс Animal: Определяет два абстрактных метода make_sound и move. ✅Подкласс Dog: Реализует оба абстрактных метода, поэтому его экземпляр может быть создан. ✅Подкласс Fish: Реализует только метод move, поэтому попытка создать его экземпляр вызовет ошибку, так как метод make_sound остался нереализованным. Почему это нужно ✅Обеспечение реализации важных методов: Абстрактные классы гарантируют, что все подклассы будут содержать определенные методы, что важно для согласованности и предсказуемости поведения объектов. ✅Полиморфизм: Позволяет работать с разными объектами через единый интерфейс, что делает код гибким и расширяемым. Абстрактный класс создается с помощью модуля abc. Он содержит абстрактные методы, которые должны быть реализованы в подклассах. Это помогает гарантировать, что все подклассы будут иметь определенные методы. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1096 вопроса на Python разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых