削除できるクラスの特定の属性があります。ただし、その他は削除禁止です。
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
このコードは機能しません。コードの何が問題になっていますか? どちらの属性も削除中です。ちなみにPython3を使っています。__delattr__
動作しないようです。クラスをインスタンス化したくないことに注意してください(したくないfoo = klass(); del foo.a;
/したくないdel klass.a;
)。ありがとう。