Python Glossary English

все Python 3Встроенные функциипонятие

delattr

ООП

Удаляет атрибут объекта по имени. Эквивалент del obj.attr, но позволяет передать имя атрибута как строку динамически.

Синтаксис

delattr(object, name)

Смысл в delattr есть только тогда, когда имя атрибута вычисляется в рантайме; если имя известно заранее, пишите del obj.attr. Удаляется именно атрибут экземпляра: если x объявлен в теле класса, а не присвоен через self, то delattr(экземпляр, 'x') упадёт с AttributeError, хотя чтение obj.x до этого работало. Отсутствующий атрибут — тоже AttributeError, так что подстраховывайтесь hasattr или try/except.

Примеры

class A:
    x = 1
    def __init__(self): self.y = 2
a = A()
delattr(a,'y')
print(hasattr(a,'y'))  # → False
delattr(A,'x')
print(hasattr(A,'x'))  # → False
try:
    delattr(a,'z')
except AttributeError as e: print(e)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности