Что такое slots ?
Спросят с вероятностью 13%
Когда вы определяете
Пример:
В этом примере у класса
Важно отметить, что использование slots может иметь смысл только в тех случаях, когда вы уверены, что ограничение набора атрибутов не вызовет проблем в приложении.
➡️ Примеры ответов
➡️ Список всех вопросов на Python Developer
🧩 Идущий | 🔐 Собесы | 🔐 Тестовые
Спросят с вероятностью 13%
slots - это механизм, который позволяет явно определить ограниченный набор атрибутов (полей) для экземпляров класса. Обычно атрибуты экземпляров создаются динамически при их присваивании, что может приводить к потреблению памяти, особенно при работе с большим количеством экземпляров класса. Когда вы определяете
slots
для класса, то определяете фиксированный набор атрибутов, которые могут существовать для экземпляров этого класса. Это позволяет экономить память и улучшать производительность, особенно в случае, когда у вас есть много экземпляров класса.Пример:
class MyClass:
slots = ['x', 'y']
def init(self, x, y):
self.x = x
self.y = y
obj = MyClass(10, 20)
print(obj.x) # Вывод: 10
print(obj.y) # Вывод: 20
# Попытка присвоить атрибут, не определенный в slots, вызовет ошибку
# obj.z = 30 # Вызовет AttributeError
В этом примере у класса
MyClass
есть определение slots
, которое ограничивает атрибуты экземпляра класса только x
и y
. Попытка присвоить значение атрибуту z
вызовет ошибку AttributeError.Важно отметить, что использование slots может иметь смысл только в тех случаях, когда вы уверены, что ограничение набора атрибутов не вызовет проблем в приложении.
➡️ Примеры ответов
➡️ Список всех вопросов на Python Developer