You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为自定义Python类实现带属性删除限制的__delattr__方法?

如何在Python类中限制特定属性的删除操作?

这里有一个实用的示例,通过重写__delattr__方法来实现对特定属性删除的限制:

class MyClasse:
    nom = "me"
    age = 24
    
    def __delattr__(self, name):
        # 禁止删除nom属性
        if name == "nom":
            raise AttributeError("you are not allowed")
        # 其他属性正常执行删除
        else:
            object.__delattr__(self, name)

# 实例化类
A = MyClasse()
# 可以正常删除age属性
del A.age

代码细节说明:

  • __delattr__是Python的特殊方法,当你对对象执行del操作删除属性时,这个方法会被自动触发
  • 我们在方法里加入了判断逻辑:如果要删除的属性是nom,就抛出AttributeError来阻止删除操作
  • 对于其他属性(比如示例中的age),则调用父类object的__delattr__方法,完成正常的属性删除流程
  • 如果尝试执行del A.nom,程序会直接抛出AttributeError: you are not allowed,以此达到限制特定属性删除的目的

内容的提问来源于stack exchange,提问作者Ishak Hamed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:31:12