python内置函数delattr可以将对象的一个属性删除,如果对象本身没有这个属性,delattr会报AttributeError错误,被删除后,如果试图访问对象的这个属性,将会引发AttributeError错误。
def delattr(x, y): # real signature unknown; restored from __doc__
"""
Deletes the named attribute from the given object.
delattr(x, 'y') is equivalent to ``del x.y``
"""
pass
无
class Stu():
def __init__(self, name, age):
self.name = name
self.age = age
stu = Stu('小明', '14')
print(stu.name)
delattr(stu, 'name')
print(stu.name)
程序输出结果
小明
Traceback (most recent call last):
File "C:/Users/zhangdongsheng/PycharmProjects/liepin/test2.py", line 10, in <module>
print(stu.name)
AttributeError: 'Stu' object has no attribute 'name'
第一个print语句可以输出sut对象的name属性,delattr删除了stu的name属性,因此第二个print语句会引发AttributeError异常,如果尝试删除一个不存在的属性,也会引发AttributeError异常,如下面的语句
delattr(stu, 'address')
QQ交流群: 211426309