Python delattr() 函数
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
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'}
代码解析:
- 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}
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 内置函数
点我分享笔记