我允许删除类中的某些属性。但是,禁止删除其他人。
class klass:
a = 1
b = 2
def __delattr__(cls, attr):
if attr=='a':
pass # go ahead, delete attribute a
elif attr=='b':
raise TypeError("Bad boy/girl, you shouldn't delete attribute b")
del klass.a
del klass.b
此代码不起作用。代码有什么问题?这两个属性仍在被删除。顺便说一句,我正在使用 Python 3。__delattr__
似乎不起作用。请注意,我不想实例化该类(我不想foo = klass(); del foo.a;
/我想要del klass.a;
)。谢谢。