Поднять исключение при назначении
Есть ли способ предотвратить привязку имени или отскок переменной? Например, учитывая foo
переменная, возможно ли, чтобы операция присваивания вызывала исключение?
Более конкретно, при условии, что у нас есть полный контроль над foo
класс, возможна ли следующая сессия?
>>> foo = 2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
WhateverError: foo cannot be bound
Я знаю, что можно сделать атрибуты класса доступными только для чтения или использовать __slots__
чтобы запретить добавление новых членов, но я хочу знать, можно ли добиться того же с помощью свободных переменных (например, переменных, не являющихся членами). Кроме того, я предполагаю, что левый член присваивания является действительным идентификатором.
Я задаю этот вопрос из любопытства. Я ничего не пытаюсь сделать с этим, так что это не проблема XY.