Python でいくつかの属性を持つオブジェクトを作成したいのですが、間違った属性名を誤って使用しないように保護したいと考えています。コードは次のとおりです。
class MyClass( object ) :
m = None # my attribute
__slots__ = ( "m" ) # ensure that object has no _m etc
a = MyClass() # create one
a.m = "?" # here is a PROBLEM
しかし、この単純なコードを実行すると、非常に奇妙なエラーが発生します。
Traceback (most recent call last):
File "test.py", line 8, in <module>
a.m = "?"
AttributeError: 'test' object attribute 'm' is read-only
少し時間を割いて、「読み取り専用」エラーについて教えてくれる賢明なプログラマーはいますか?