python内置函数delattr详解

delattr函数功能作用

python内置函数delattr可以将对象的一个属性删除,如果对象本身没有这个属性,delattr会报AttributeError错误,被删除后,如果试图访问对象的这个属性,将会引发AttributeError错误。

delattr函数语法


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

参数

  • object 任意对象
  • name 字符串,希望被删除的对象属性

返回值

示例代码

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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案