Python delattr() 函数

Python3 内置函数 Python3 内置函数


delattr() 是 Python 中用于删除对象属性的内置函数。

delattr() 可以删除对象的指定属性。与 del 语句类似,但允许通过字符串动态指定要删除的属性。

单词释义delattr 是 delete attribute(删除属性)的缩写。


基本语法与参数

语法格式

delattr(object, name)

参数说明

  • 参数 object
    • 类型: 任意对象
    • 描述: 要删除属性的对象。
  • 参数 name
    • 类型: 字符串
    • 描述: 要删除的属性名称。

函数说明

  • 返回值: 无返回值。
  • 异常: 如果属性不存在,会抛出 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

运行结果预期:

{'name': 'Tom', 'age': 20, 'city': 'Beijing'}
{'name': 'Tom', 'city': 'Beijing'}

代码解析:

  1. delattr(p, "age") 等价于 del p.age。

示例 2:动态删除

实例

class Data:
    def __init__(self):
        self.a = 1
        self.b = 2
        self.c = 3

d = Data()
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 内置函数 Python3 内置函数