Функция Python delattr()
delattr()— это встроенная функция в Python, используемая для удаления атрибутов объекта.
delattr()Она может удалить указанный атрибут объекта. Похожа наdelинструкцию del, но позволяет динамически указать удаляемый атрибут с помощью строки.
Определения слов: delattr 是 delete attribute(删除属性)的缩写。
Базовый синтаксис и параметры
Формат синтаксиса
delattr(object, name)
Описание параметра
- Параметр object:
- Тип: любой объект
- Описание: Объект, атрибут которого нужно удалить.
- Имя параметра:
- Тип: String
- Описание: Имя удаляемого атрибута.
Описание функций
- Возвращаемое значение: Нет возвращаемого значения.
- Исключение: Если атрибут не существует, будет вызвано AttributeError.
Примеры
Пример 1: Базовое использование
Пример
class Person:
def __init__(self):
self.name = "Tom"
self.age = 20
self.city = "Beijing"
p = Person()
print(vars(p))
# Вывод: {'name': 'Tom', 'age': 20, 'city': 'Beijing'}
# Удалить атрибут
delattr(p, "age")
print(vars(p))
# Вывод: {'name': 'Tom', 'city': 'Beijing'}
# Эквивалентно del p.age
def __init__(self):
self.name = "Tom"
self.age = 20
self.city = "Beijing"
p = Person()
print(vars(p))
# Вывод: {'name': 'Tom', 'age': 20, 'city': 'Beijing'}
# Удалить атрибут
delattr(p, "age")
print(vars(p))
# Вывод: {'name': 'Tom', 'city': 'Beijing'}
# Эквивалентно del p.age
Ожидаемый вывод:
{'name': 'Tom', 'age': 20, 'city': 'Beijing'}
{'name': 'Tom', 'city': 'Beijing'}
Анализ кода:
- delattr(p, "age") эквивалентно del p.age.
Пример 2: Динамическое удаление
Пример
class Data:
def __init__(self):
self.a = 1
self.b = 2
self.c = 3
d = Данные()
print(vars(d))
# Динамически удалить атрибуты
attrs_to_delete = ["a", "c"]
for attr in attrs_to_delete:
if hasattr(d, attr):
delattr(d, attr)
print(vars(d)) # Вывод: {'b': 2}
def __init__(self):
self.a = 1
self.b = 2
self.c = 3
d = Данные()
print(vars(d))
# Динамически удалить атрибуты
attrs_to_delete = ["a", "c"]
for attr in attrs_to_delete:
if hasattr(d, attr):
delattr(d, attr)
print(vars(d)) # Вывод: {'b': 2}
Вывод:
Несколько атрибутов можно удалять динамически.
delattr()Вместе сhasattr()это безопаснее использовать.
Другие расширения
Встроенные функции Python3