📅  最后修改于: 2023-12-03 15:33:59.361000             🧑  作者: Mango
在 Python 中,我们有时需要删除对象的属性,这就可以使用 delattr()
函数。delattr()
函数是一个内置函数,它可以用来删除任意对象的属性。
delattr()
函数接受两个参数:
如果对象中存在该属性,则属性将被删除。如果对象中不存在该属性,则函数会抛出 AttributeError
异常。
下面我们将介绍 delattr()
函数的使用方法和示例。
delattr(object, name)
object
: 要删除属性的对象。name
: 要删除的属性名称。delattr()
函数不会返回任何值,它只会删除指定对象的指定属性。
先定义一个 test
类,来演示 delattr()
函数的用法。
class Test:
def __init__(self, a, b):
self.a = a
self.b = b
我们来创建一个 Test
类的对象 t
,并添加两个属性 a
和 b
。
>>> t = Test(1, 2)
>>> t.a
1
>>> t.b
2
现在我们使用 delattr()
函数删除对象 t
的属性 a
。
>>> delattr(t, 'a')
>>> t.a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Test' object has no attribute 'a'
可以看到,调用 t.a
命令已经不再返回 1
,而是抛出了 AttributeError
异常,表明属性 a
已经被删除了。
我们创建一个 person
字典,里面储存了一个人的信息,包括姓名、年龄和城市。现在我们使用 delattr()
函数来删除它的城市信息。
>>> person = {'name': 'Tom', 'age': 22, 'city': 'Beijing'}
>>> delattr(person, 'city')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'dict' object has no attribute 'city'
结果表明 delattr()
函数无法用于字典,应该只用于对象。所以删除字典中的属性应该使用 del
命令。
>>> del person['city']
>>> person
{'name': 'Tom', 'age': 22}
delattr()
函数是一个强大的函数,可以删除对象的任意属性,但是同样需要小心使用。在删除属性之前,你需要确认对象是否存在该属性,否则会抛出 AttributeError
异常。如果要删除字典中的属性,则应该使用 del
命令。