Можно ли перегрузить присваивание Python?

Существует ли волшебный метод, который может перегрузить оператор присваивания, например __assign__ (я, новое_значение)?

Я бы хотел запретить повторную привязку экземпляра:

class Protect():
  def __assign__(self, value):
    raise Exception("This is an ex-parrot")

var = Protect()  # once assigned...
var = 1          # this should raise Exception()

Возможно ли это? Это безумие? Стоит ли мне принимать лекарства?

65
задан Eric 1 September 2013 в 23:03
поделиться