P
Python | Вопросы собесов
17.07.2026 16:10 · 👁 413
🤔 Что такое set?
Это специальный метод в Python, который используется в дескрипторах. Он позволяет определить, как объект класса будет вести себя при установке значения через точку. Например, он может автоматически проверять или преобразовывать значение перед сохранением.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
P
Python | Вопросы собесов
17.07.2026 13:33 · 👁 520
Прошла половина лета
Выгореть ещё успеем. А пока лето — отправляемся загорать.
И не просто так, а со скидкой 5000 рублей по промокоду NETSIL от Яндекс Путешествий.
Забронировать
#реклама
travel.yandex.ru
О рекламодателе
P
Python | Вопросы собесов
17.07.2026 09:05 · 👁 547
🤔 Как сгенерировать и применить миграцию?
В Django миграции используются для изменения структуры базы данных (создание, изменение и удаление таблиц и полей).
🚩Генерация миграции (`makemigrations`)
🟠Создаём или изменяем модель (`models.py`)
Пример модели пользователя:
from django.db import models
class UserProfile(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
🟠Генерируем миграцию
Запускаем команду:
python manage.py makemigrations
Django создаст файл миграции в migrations/
migrations/
0001_initial.py # Файл с SQL-изменениями
Проверяем SQL-запрос, который будет выполнен
python manage.py sqlmigrate myapp 0001
🚩Применение миграции (`migrate`)
После генерации нужно применить миграции к базе данных:
python manage.py migrate
🚩Что делать, если модель изменилась?
Добавим поле в models.py
class UserProfile(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
email = models.EmailField(default="example@example.com") # Добавили поле
Сгенерируем новую миграцию
python manage.py makemigrations
Применяем изменения к БД
python manage.py migrate
🚩Откат миграций (`migrate <номер>`)
Если нужно откатить последнее изменение:
python manage.py migrate myapp 0001 # Откат до первой миграции
Ставь 👍 и забирай 📚 Базу знаний
P
Python | Вопросы собесов
16.07.2026 16:10 · 👁 717
🤔 Что такое cls
1. cls — это ссылка на сам класс, аналог self для объектов.
2. Используется в методах класса (помеченных декоратором @classmethod) для доступа к атрибутам или созданию новых экземпляров.
3. Пример: def create_instance(cls): return cls().
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
P
Python | Вопросы собесов
16.07.2026 10:36 · 👁 754
Освой многопоточность в Java: вебинар с от Otus!
Хочешь писать быстрый Java код? Приходи на открытый урок: разберём основы многопоточности - узнаешь, как ускорить приложения!
Узнать больше
#реклама 16+
otus.ru
О рекламодателе
P
Python | Вопросы собесов
16.07.2026 09:05 · 👁 659
🤔 Что такое деструктор класса?
Это специальный метод, который вызывается автоматически, когда объект класса уничтожается. В Python этот метод называется __del__(). Деструктор используется для выполнения операций очистки, таких как освобождение ресурсов или выполнение завершающих действий перед тем, как объект будет удален из памяти.
🚩Определение и использование деструктора
Определяется внутри класса с помощью метода __del__().
class FileManager:
def __init__(self, filename):
self.file = open(filename, 'w')
print(f"Файл {filename} открыт для записи.")
def write_data(self, data):
self.file.write(data)
def __del__(self):
self.file.close()
print("Файл закрыт.")
🟠Класс FileManager имеет конструктор __init__(), который открывает файл для записи.
🟠Метод write_data() записывает данные в файл.
🟠Деструктор __del__() закрывает файл, когда объект FileManager уничтожается.
🚩Создание и уничтожение объекта
Когда объект класса создается, вызывается конструктор. Когда объект больше не нужен, вызывается деструктор:
manager = FileManager('example.txt')
manager.write_data('Hello, world!')
# Когда объект manager больше не нужен, вызывается деструктор и файл закрывается
🚩Важные замечания
🟠Сборка мусора
Python использует механизм сборки мусора для автоматического управления памятью. Когда объект больше не используется (например, нет активных ссылок на него), сборщик мусора удаляет объект и вызывает его деструктор.
🟠Неопределенное время вызова
Точное время вызова деструктора зависит от работы сборщика мусора. Это означает, что нельзя гарантировать момент вызова деструктора. Поэтому для критических операций лучше использовать явное управление ресурсами, например, с помощью контекстных менеджеров (with).
🟠Контекстные менеджеры
Для явного управления ресурсами и их освобождения в предсказуемый момент лучше использовать контекстные менеджеры.
with open('example.txt', 'w') as file:
file.write('Hello, world!')
# Файл автоматически закрывается после выхода из блока with
Ставь 👍 и забирай 📚 Базу знаний
P
Python | Вопросы собесов
15.07.2026 16:10 · 👁 695
🤔 Что такое dunder методы?
Это специальные методы, обрамлённые двойными подчёркиваниями.
1. Пример: init, str, add.
2. Они позволяют изменять поведение встроенных операций, таких как создание объектов или арифметика.
Ставь 👍 если знал ответ, 🔥 если нет
Забирай 📚 Базу знаний
P
Python | Вопросы собесов
15.07.2026 10:36 · 👁 717
Больше выгоды с подпиской Kaspersky Premium
Купите подписку Kaspersky Premium сейчас и получите скидку до 28%, гарантированные призы от наших партнёров, а также шанс выиграть путешествие!
Узнать больше
#реклама 16+
kaspersky.ru
О рекламодателе
P
Python | Вопросы собесов
15.07.2026 09:05 · 👁 711
🤔 Какие есть методы чтобы реализовать протокол итерирования данных?
Для реализации протокола итерирования данных в Python необходимо использовать два метода: __iter__() и __next__().
🚩Протокол итератора
🟠Метод `__iter__()`
Этот метод должен возвращать объект-итератор. В простом случае он возвращает сам объект, если объект реализует метод __next__(). Метод __iter__() необходим для того, чтобы объект можно было использовать в конструкциях, которые требуют итерируемого объекта, таких как циклы for.
🟠Метод __next__()
Этот метод возвращает следующий элемент в последовательности. Когда элементы заканчиваются, метод должен вызвать исключение StopIteration для остановки итерации.
class MyRange:
def __init__(self, start, end):
self.start = start
self.end = end
self.current = start
def __iter__(self):
self.current = self.start # Перезапуск итератора при каждом вызове
return self
def __next__(self):
if self.current >= self.end:
raise StopIteration
else:
self.current += 1
return self.current - 1
# Использование
for number in MyRange(1, 5):
print(number)
🚩Дополнительно: итераторы и генераторы
Для упрощения создания итераторов в Python можно использовать генераторы. Генераторы позволяют писать итераторы с использованием ключевого слова yield вместо определения методов __iter__() и __next__() вручную.
def my_range(start, end):
current = start
while current < end:
yield current
current += 1
# Использование
for number in my_range(1, 5):
print(number)
Ставь 👍 и забирай 📚 Базу знаний
P
Python | Вопросы собесов
14.07.2026 20:39 · 👁 756
Комфорт и безопасность с ночными трусиками Pampers
Скидка 20% в любимой категории на Яндекс Маркете
Узнать больше
#реклама
market.yandex.ru
О рекламодателе