Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpAaDa 111 of 174 menu
◀ ▶

Удаление свойства через __delattr__ в ООП в Python

Метод __delattr__ вызывается при попытке удалить атрибут оператором del. Если его не реализовать, удаление идет обычным способом - там, где атрибут недоступен, возникнет ошибка.

Давайте разрешим удалять только заранее известные имена. Пусть дан класс Test:

class Test: def __init__(self): self.prop1 = 1 self.prop2 = 2 def __delattr__(self, name): properties = ['prop1', 'prop2'] if name in properties: super().__delattr__(name)

Проверим:

test = Test() del test.prop1 print(test.prop2) # выведет 2

Чтобы прочитать атрибут по строковому имени внутри класса, иногда используют функцию getattr - она вернет значение так же, как обращение через точку.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить