Python 基础教程

Python 高级教程

Python 相关应用

Python 笔记

Python FAQ

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/python-builtin-functions-delattr.html

python 用于删除类或类对象的一个属性的内置函数 delattr 详解

Python 内置函数 Python 内置函数


delattr 是 Python 内置的一个函数,用于删除类对象的属性。它的作用是删除指定类对象的指定属性,并且可以处理动态属性的删除。

函数语法

delattr(object, name)

参数:

  • object : 要删除属性的对象。
  • name : 要删除的属性名称。

示例代码

最简单的用法,删除对象的属性:

class MyClass:
    def __init__(self):
        self.my_attr = 42

obj = MyClass()
print("Before:", obj.__dict__)
delattr(obj, 'my_attr')
print("After:", obj.__dict__)

运行结果:

Before: {'my_attr': 42}
After: {}

在类中动态添加属性并删除:

class Student:
    pass

student = Student()
student.name = "Alice"
student.age = 25

print("Before:", student.__dict__)
delattr(student, 'name')
print("After:", student.__dict__)

运行结果:

Before: {'name': 'Alice', 'age': 25}
After: {'age': 25}

尝试删除不存在的属性:

class Car:
    brand = "Toyota"

car = Car()
print("Before:", car.__dict__)
try:
    delattr(car, 'color')
except AttributeError as e:
    print("AttributeError:", e)
print("After:", car.__dict__)

运行结果:

Before: {}
AttributeError: 'Car' object has no attribute 'color'
After: {}

总结

delattr 函数是 Python 提供的用于删除类对象属性的内置函数。通过传递对象和属性名称作为参数,它允许您在运行时删除对象的属性。请注意,如果属性不存在,它会引发 AttributeError 异常。该函数对于动态属性的管理和对象属性的删除非常有用。