名前がバインドされないようにする方法、または変数が再バインドされるのを防ぐ方法はありますか? たとえば、foo
変数が与えられた場合、割り当て操作で例外を発生させることは可能ですか?
より具体的には、foo
のクラスを完全に制御できる場合、次のセッションは可能ですか?
>>> foo = 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WhateverError: foo cannot be bound
クラス属性を読み取り専用にするか、__slots__
新しいメンバーを追加できないようにすることが可能であることは知っていますが、フリー変数 (非メンバー変数など) でも同じことができるかどうかを知りたいです。また、割り当ての左側のメンバーが有効な識別子であると想定しています。
私は好奇心からこの質問をしています。これで達成しようとしていることは何もないので、これは XY 問題ではありません。