delattr() 删除对象属性
最后更新:2026-09-22
delattr() 删除对象属性
delattr(obj, name) 删除 obj 上的属性 name;等价于 del obj.name。
| 分类 | 内置函数 |
|---|---|
| 类型 | 内置函数 |
| Python 版本 | all |
📝 语法
delattr(object, name)
⚙️ 参数
| object 必选 | 要删除属性的对象。 |
|---|---|
| name 必选 | 属性名(字符串)。 |
返回值:无(返回 None)。
💥 异常
AttributeError— 当属性不存在或不可删除时抛出。TypeError— 当 name 不是字符串时抛出。
▶ 示例
编辑下方代码,点击运行,在输出面板查看结果:
运行结果:
False
🏷️ 相关内置函数
💡 相关案例
更多实战案例即将上线,敬请期待。
❓ 常见问题
Qdelattr(obj, 'x') 和 del obj.x 有什么区别?
A功能完全等价。delattr 的优势是属性名可以是变量或动态字符串,适合按名字删除的场景。
Q删除不存在的属性会怎样?
A抛 AttributeError,与 del obj.nonexist 行为相同;删除前可用 hasattr() 检查。
Qdelattr 能删除方法吗?
A能。方法也是类属性,delattr(实例类, 'method') 删除后,实例再调用该方法会抛 AttributeError。
Qname 参数必须是什么类型?
A必须是字符串,传其他类型(如数字)会抛 TypeError。